将字符串添加到python列表 - > json对象

时间:2016-12-07 14:31:49

标签: python json

我有以下列表:

rainbow = ['green', 'red', 'blue', 'yellow' ,'orange']

我希望输出是一个JSON对象,如下所示:

{
  "rainbow":[
    {
        "color": "green"
    },
    {
        "color": "red"
    },
    {
        "color": "blue"
    },
    {
        "color": "yellow"
    }
    {
        "color": "orange"
    }
]}

任何想法?我尝试了很多事情,一直在努力寻找解决方案。

import json
import itertools

rainbow = ['green', 'red', 'blue', 'yellow' ,'orange']

d = dict((k,'color') for k in rainbow)

skittles = json.dumps(d)

print skittles

{"blue": "color", "orange": "color", "green": "color", "yellow": "color", "red": "color"}

2 个答案:

答案 0 :(得分:2)

您的解决方案会创建一个包含错误键值顺序的扁平字典。你应该尝试类似的东西:

{'rainbow': [{'color': color} for color in rainbow]}

这会创造一条彩虹' key,以字典列表作为其值(使用列表推导创建)。

答案 1 :(得分:1)

你可以这样做:

import json
json.dumps({"rainbow": [{"color": color} for color in rainbow]})