Python Re:使用正则表达式搜索列表

Dav*_*rtz 0 python regex dictionary python-2.7

我正在尝试搜索一个我从网站上检索的相当复杂的字符串.这是来自在线商店的产品ID列表.字符串如下:

['{ "40710": { "params": ["Black", "37"]}, "40711": { "params": ["Black", "37,5"]}, "40712": { "params": ["Black", "38"]}, "40713": { "params": ["Black", "38,5"]}, "40714": { "params": ["Black", "39"]}, "40715": { "params": ["Black", "40"]}, "40716": { "params": ["Black", "40,5"]}, "40717": { "params": ["Black", "41"]} }']
Run Code Online (Sandbox Code Playgroud)

我希望通过将ID(五位数字)作为键和大小(两三位数字)来从这些数据创建字典.

这就是我希望字典看起来像:

dictionary = {'40710':'37', '40711':'37,5', '40712':'38', '40713':'38,5', '40714':'39', '40715':'40', '40716':'40,5', '40717':'41'}
Run Code Online (Sandbox Code Playgroud)

我不知道正则表达式是否适合这种方式,但一切似乎都指向它; 但是,我真的不知道如何处理这样的数据.我真的可以在这里使用一些帮助.

提前致谢.

Mos*_*oye 5

转换为Python对象后的字典理解json.loads应该做:

import json

d = {k: v['params'][1] for k, v in json.loads(lst[0]).items()}
print(d)
# {'40710': '37', '40711': '37,5', '40712': '38', '40713': '38,5', '40714': '39', '40715': '40', '40716': '40,5', '40717': '41'}
Run Code Online (Sandbox Code Playgroud)