使用多个字典创建JSON,Python

Vor*_*Vor 4 python json dictionary

我有以下代码:

>>> 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
}
Run Code Online (Sandbox Code Playgroud)

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

[
    {
        "1": 1,
        "2": 8
    },
    {
        "1": 1,
        "2": 8
    },
    {
        "1": 1,
        "2": 8
    }
]
Run Code Online (Sandbox Code Playgroud)

jte*_*ace 5

您所需的输出是无效的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
    }
]
Run Code Online (Sandbox Code Playgroud)


Mar*_*ers 5

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

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