wnhuiyou 发表于 2020-6-5 14:46:32

怎么把它转换为字典格式?

本帖最后由 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

Twilight6 发表于 2020-6-5 15:47:55

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)
是要这种效果嘛?

wnhuiyou 发表于 2020-6-5 23:30:20

Twilight6 发表于 2020-6-5 15:47
是要这种效果嘛?

对对对! 厉害,没错了,就是这个效果,谢谢你给我思路, 还有别的写法了吗?

Twilight6 发表于 2020-6-5 23:31:06

wnhuiyou 发表于 2020-6-5 23:30
对对对! 厉害,没错了,就是这个效果,谢谢你给我思路, 还有别的写法了吗?

那当然有咯

wnhuiyou 发表于 2020-6-5 23:33:12

Twilight6 发表于 2020-6-5 23:31
那当然有咯

能多提供几种写法吗? 凝固下我的思路

wnhuiyou 发表于 2020-6-5 23:34:01

wnhuiyou 发表于 2020-6-5 23:33
能多提供几种写法吗? 凝固下我的思路

有没有 直接通过正则表达式 来直接截取? 这样就省去了很多步骤

Twilight6 发表于 2020-6-5 23:35:31

wnhuiyou 发表于 2020-6-5 23:34
有没有 直接通过正则表达式 来直接截取? 这样就省去了很多步骤

骚等 我试试

wnhuiyou 发表于 2020-6-5 23:36:03

Twilight6 发表于 2020-6-5 23:35
骚等 我试试

好类

Twilight6 发表于 2020-6-5 23:44:39

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)

Twilight6 发表于 2020-6-5 23:54:09

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)

wnhuiyou 发表于 2020-6-5 23:58:22

Twilight6 发表于 2020-6-5 23:44
这样可以吗?我正则不怎么熟练唉

谢谢!!
页: [1]
查看完整版本: 怎么把它转换为字典格式?