原始数据为 abc=00001&abc2=00002&abc3=00003
现在要把上面的数据转成dict格式:{'abc': 00001, 'ab2': 00002, 'ab3': 00003}
我现在用的方法是先转成list再转成dict:
t = 'abc=00001&abc2=00002&abc3=00003'
d = {}
for i in t.split('&'):
l = i.split('=')
d[l[0]] = l[1]
我总觉得这个方法不简明,请问还有什么更好的方法吗?
2 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
python3
>>> t = 'abc=00001&abc2=00002&abc3=00003'
>>> {k:v for k,v in (s.split('=')for s in t.split('&'))}
{'abc3': '00003', 'abc': '00001', 'abc2': '00002'}
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
将string按 '&' 号分开可以得到形式为"abc(n)=0000(n)"的数组,接下来对数组成员进行map,map的函数目的是将成员按 '=' 区分开,这一步将会获得[[key,value],[key,value],[key,value]],然后外面套个dict就行了。
函数式编程可读性好一点,缺点是你不容易知道哪儿缺了个括号。
t = 'abc=00001&abc2=00002&abc3=00003'
d = dict(map(lambda s: s.split('='), t.split('&')))
添加回答
举报
0/150
提交
取消