Python元组到json结构

时间:2016-04-23 12:02:53

标签: python json dictionary

我在Python中有这本词典:

[('157.55.39.64', 4), ('188.165.15.192', 2), ('1.165.15.192', 1)]

其中第一个字段是IP地址,另一个字段表示文件中存在的次数。

我想像这样的json表示:

[{"ip":"157.55.39.64","times":4},
  {"ip":"188.165.15.192","times":2},
   {"ip":"1.165.15.192","times":1}]

我尝试过使用jsonify(字典),但我明白了:

{"157.55.39.64":4, "188.165.15.192": 2, "1.165.15.192":1}

只有一个json项目。我不知道如何放置字符串" ip"和"次"为了出现在json文件中。

任何帮助?

2 个答案:

答案 0 :(得分:3)

如果您的原始结构名为ips,则可以使用

获取所需的json
ips = [('157.55.39.64', 4), ('188.165.15.192', 2), ('1.165.15.192', 1)]
json.dumps([{"ip": ip[0], "times": ip[1]} for ip in ips])

输出

[
    {
        "ip": "157.55.39.64",
        "times": 4
    },
    {
        "ip": "188.165.15.192",
        "times": 2
    },
    {
        "ip": "1.165.15.192",
        "times": 1
    }
]

答案 1 :(得分:0)

使用列表推导将数据转换为所需格式和try jsonify

data = [('157.55.39.64', 4), ('188.165.15.192', 2), ('1.165.15.192', 1)]
data = [{"ip": ip, "times": times} for ip, times in data]

现在,使用jsonify将此列表转换为json