Python:将 JSON 对象转换为 JSON 数组

Posted

技术标签:

【中文标题】Python:将 JSON 对象转换为 JSON 数组【英文标题】:Python: turn JSON object to JSON array 【发布时间】:2018-10-11 11:36:02 【问题描述】:

我在 python 中有以下字典,我将其保存到文件中:

d2 = 
    "CHARACTER": 
        "IDENTITY": 
            "FORM": 
                "id": "BK1",
                "type": "MAGE",
                "role": "DARK"
            
        ,
        "USER": 
            "owner": 
                "id": "SABBATH13"
            ,
            "level": "16"
        
    


jsonfile = open('d2.json', 'w')
jsonfile.write(simplejson.dumps(d2, indent=4))
jsonfile.close()

但是,我被告知这是一个 JSON 对象,我需要将其转换为以下形式的 JSON 数组:

[
    "CHARACTER": 
        "IDENTITY": 
            "FORM": 
                "id": "BK1",
                "type": "MAGE",
                "role": "DARK"
            
        ,
        "USER": 
            "owner": 
                "id": "SABBATH13"
            ,
            "level": "16"
        
    
]

这实质上是在开头和结尾添加方括号。

这样做的正确方法是什么?我应该转换为字符串并添加括号,然后再转换回来吗?抱歉,这里是 JSON 新手。

【问题讨论】:

***.com/questions/26745519/… 看看这里是否有帮助? 你不能jsonfile.write(simplejson.dumps([d2], indent=4)吗? 【参考方案1】:

您在错误的抽象级别上思考。这不是关于括号,而是关于你有一个作为对象的数据结构,而你显然需要的是一个 list/array of objects(即使列表中只有一个对象)。所以:

d2 = [d2]

现在dumps 这个,你得到你需要的。

【讨论】:

谢谢,这行得通,虽然我尝试了类似的东西并得到:ValueError: dictionary update sequence element #0 has length 9; 2 is required

以上是关于Python:将 JSON 对象转换为 JSON 数组的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Python 数据框对象转换为 json?

Python Flask:如何将字典对象转换为 json? [复制]

python中json文件如何转换为外部链接

将 YAML 文件转换为 Python JSON 对象

Python每日一练——数据存储第四关:如何将一个Python对象转换为对应的JSON字符串

Python面试必考重点之数据存储第四关——如何将一个Python对象转换为对应的JSON字符串