【问题标题】:Python: turn JSON object to JSON arrayPython:将 JSON 对象转换为 JSON 数组
【发布时间】: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 新手。

【问题讨论】:

标签: python json


【解决方案1】:

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

d2 = [d2]

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

【讨论】:

  • 谢谢,这行得通,虽然我尝试了类似的东西并得到:ValueError: dictionary update sequence element #0 has length 9; 2 is required
猜你喜欢
  • 2021-10-18
  • 2012-07-21
  • 2020-10-02
  • 1970-01-01
  • 2014-12-29
  • 2018-04-16
  • 2018-09-12
相关资源
最近更新 更多