怎么把它转换为字典格式?
本帖最后由 wnhuiyou 于 2020-6-5 14:48 编辑我现在有这么一个问题,我通过TCP获取到了 HTTP的发送过来的请求,我也做了 正则表达式 提取出了 GET 传过来的数据,那我要怎么 对这串数据做 分割 和 替换? 达到这种字典效果: {bs:11,fk:22,tf:33,fh:22} 因为我要获取对应的value值
这是我写的代码,虽然打印出来是我想要的效果,但是总觉得还可以优化,请各位指点下
https://s1.ax1x.com/2020/06/05/trM4ld.png
这就是打印出来的效果:
https://s1.ax1x.com/2020/06/05/trKoIU.png data = 'bs=11&fk=22&tf=33&fh=22'
data_list = data.split('&')
data_dict = {}
for i in data_list:
(key,value) = i.split('=')
data_dict = value
print(data_dict)
是要这种效果嘛? Twilight6 发表于 2020-6-5 15:47
是要这种效果嘛?
对对对! 厉害,没错了,就是这个效果,谢谢你给我思路, 还有别的写法了吗? wnhuiyou 发表于 2020-6-5 23:30
对对对! 厉害,没错了,就是这个效果,谢谢你给我思路, 还有别的写法了吗?
那当然有咯 Twilight6 发表于 2020-6-5 23:31
那当然有咯
能多提供几种写法吗? 凝固下我的思路 wnhuiyou 发表于 2020-6-5 23:33
能多提供几种写法吗? 凝固下我的思路
有没有 直接通过正则表达式 来直接截取? 这样就省去了很多步骤 wnhuiyou 发表于 2020-6-5 23:34
有没有 直接通过正则表达式 来直接截取? 这样就省去了很多步骤
骚等 我试试 Twilight6 发表于 2020-6-5 23:35
骚等 我试试
好类 wnhuiyou 发表于 2020-6-5 23:36
好类
这样可以吗?我正则不怎么熟练唉
import re
data = 'bs=11&fk=22&tf=33&fh=22'
data = re.sub('&','","',data)
data = re.sub('=','":"',data)
data = '{"'+data+'"}'
data = eval(data)
print(data)
wnhuiyou 发表于 2020-6-5 23:36
好类
好吧 我发现可以这样写
import re
data = 'bs=11&fk=22&tf=33&fh=22'
data_list = re.findall(r'(\w*)=(\w*)',data)
data_dict = dict(data_list)
print(data_dict) Twilight6 发表于 2020-6-5 23:44
这样可以吗?我正则不怎么熟练唉
谢谢!!
页:
[1]