【问题标题】:create JSON with multiple dictionaries, Python使用多个字典创建 JSON,Python
【发布时间】:2012-09-04 17:57:09
【问题描述】:

我有这个代码:

>>> import simplejson as json
>>> keys = dict([(x, x**3) for x in xrange(1, 3)])
>>> nums = json.dumps(keys, indent=4)
>>> print nums
{
    "1": 1,
    "2": 8
}

但我想创建一个循环来使我的输出看起来像这样:

[
    {
        "1": 1,
        "2": 8
    },
    {
        "1": 1,
        "2": 8
    },
    {
        "1": 1,
        "2": 8
    }
]

【问题讨论】:

  • 没有意义。您想要的不是有效的 JSON 文档。
  • 如何为有效的 JSON 文档创建循环?
  • @Serg:我已经编辑了输出以使其成为有效的 JSON,前提是您的意思是它是一个列表。
  • 改成keys = [dict([(x, x**3) for x in xrange(1, 3)])]*3

标签: python json dictionary


【解决方案1】:

您需要创建一个列表,将所有映射附加到该之前转换为 JSON:

output = []
for something in somethingelse:
    output.append(dict([(x, x**3) for x in xrange(1, 3)])
json.dumps(output)

【讨论】:

    【解决方案2】:

    您想要的输出不是有效的 JSON。我认为您可能打算将多个字典附加到列表中,如下所示:

    >>> import json
    >>> multikeys = []
    >>> for i in range(3):
    ...    multikeys.append(dict([(x, x**3) for x in xrange(1, 3)]))
    ... 
    >>> print json.dumps(multikeys, indent=4)
    [
        {
            "1": 1, 
            "2": 8
        }, 
        {
            "1": 1, 
            "2": 8
        }, 
        {
            "1": 1, 
            "2": 8
        }
    ]
    

    【讨论】:

    • 魔法))) 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 2019-03-15
    • 2020-04-28
    • 1970-01-01
    相关资源
    最近更新 更多