我在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文件中。
任何帮助?
答案 0 :(得分:3)
如果您的原始结构名为ips
,则可以使用
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
。