在Python Scrapy中不使用split方法将字符串转换为字典
解决非标准JSON格式转换与数据提取问题
没问题,我来帮你搞定这个需求!你需要把没有双引号包裹键的非标准JSON字符串转换成标准格式,然后提取指定字段,而且还不能用split方法,用正则表达式就能完美解决。
具体步骤:
转换非标准JSON为标准格式
原始字符串里的键(比如clientId、id)没有被双引号包裹,这不符合JSON规范。我们可以用正则表达式匹配所有的键,给它们加上双引号。这里用re.sub()方法来批量替换,完全不需要split。解析JSON并提取数据
转换后的字符串就是标准JSON了,直接用json.loads()解析成字典,然后就能轻松提取clientId和id的值。
完整代码示例:
import re import json # 原始非标准JSON字符串 data = '{clientId: "300",id: "new",ctime: "6/3/2022",mtime: "6/3/2022"}' # 用正则给所有键加上双引号,转换成标准JSON格式 standard_data = re.sub(r'(\w+):', r'"\1":', data) # 解析JSON字符串为字典 JO = json.loads(standard_data) # 提取需要的字段(用id_val避免和Python内置函数id冲突) clientId = JO['clientId'] id_val = JO['id'] # 输出结果 print(f"clientId = {clientId} id = {id_val}")
运行结果:
clientId = 300 id = new
内容的提问来源于stack exchange,提问作者Noor
相关产品推荐
相关产品推荐

