鱼C论坛

 找回密码
 立即注册
查看: 1228|回复: 10

[已解决]怎么把它转换为字典格式?

[复制链接]
发表于 2020-6-5 14:46:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 wnhuiyou 于 2020-6-5 14:48 编辑

我现在有这么一个问题,我通过TCP获取到了 HTTP的发送过来的请求,我也做了 正则表达式 提取出了 GET 传过来的数据,那我要怎么 对这串数据做 分割 和 替换? 达到这种字典效果: {bs:11,fk:22,tf:33,fh:22}     因为我要获取对应的value值

这是我写的代码,虽然打印出来是我想要的效果,但是总觉得还可以优化,请各位指点下

                               
登录/注册后可看大图



这就是打印出来的效果:

                               
登录/注册后可看大图
最佳答案
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[key] = value
print(data_dict)
是要这种效果嘛?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[key] = value
print(data_dict)
是要这种效果嘛?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-5 23:30:20 | 显示全部楼层
Twilight6 发表于 2020-6-5 15:47
是要这种效果嘛?

对对对! 厉害,没错了,就是这个效果,谢谢你给我思路, 还有别的写法了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

那当然有咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-5 23:33:12 | 显示全部楼层

能多提供几种写法吗? 凝固下我的思路
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-5 23:34:01 | 显示全部楼层
wnhuiyou 发表于 2020-6-5 23:33
能多提供几种写法吗? 凝固下我的思路

有没有 直接通过正则表达式 来直接截取? 这样就省去了很多步骤
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-5 23:35:31 | 显示全部楼层
wnhuiyou 发表于 2020-6-5 23:34
有没有 直接通过正则表达式 来直接截取? 这样就省去了很多步骤

骚等 我试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-5 23:36:03 | 显示全部楼层

好类
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-5 23:44:39 | 显示全部楼层

这样可以吗?我正则不怎么熟练唉
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-5 23:54:09 | 显示全部楼层

好吧 我发现可以这样写
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-5 23:58:22 | 显示全部楼层
Twilight6 发表于 2020-6-5 23:44
这样可以吗?我正则不怎么熟练唉

谢谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 22:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表