python 中如何格式化数据

 1, 10.121.1.1:4730, 2, 127.0.0.1:4730, 3, 127.0.0.1:4730 如何格式化为以下格式 用python { 10.121.1.1:4730: [1, 10.121.1.1:4730], 127.0.0.1:4730: [2, 127.0.0.1:4730, 3, 127.0.0.1:4730]
}

根据@dokelung,@松林两位老兄提供的建议改进

ips = 1, 10.121.1.1:4730, 2, 127.0.0.1:4730, 3, 127.0.0.1:4730 dic = {}
for v, k in ips: dic.setdefaultk, [].appendv, k print dic

虽然已经有采纳了,但还是可以提下:
看到这个setdefault,就想起collections.defaultdict,功能比setdefault更强大,接受的参数可以使默认初始化类型,也可以是函数。其实也可以更简洁

from collections import defaultdict ips = 1, 10.121.1.1:4730, 2, 127.0.0.1:4730, 3, 127.0.0.1:4730 result = defaultdictlist for v, k in ips: result[k].appendv, k

上面的是数组,下面的是dict序列号后的JSON。把数组遍历然后拼接成字典,输出JSON即可。

import json a = 1, 10.121.1.1:4730, 2, 127.0.0.1:4730, 3, 127.0.0.1:4730 b = dict
for value in a : number = value[0] address = value[1] if address not in b : b[address] = [] b[address].append[number, address] print json.dumpsb

发表评论

电子邮件地址不会被公开。 必填项已用*标注