我正在尝试搜索一个我从网站上检索的相当复杂的字符串。这是来自在线商店的产品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"]} }']
我希望通过将ID(五位数字)作为键和大小(两位三位数字)来从这些数据创建字典。
这就是我想要字典的样子:
dictionary = {'40710':'37', '40711':'37,5', '40712':'38', '40713':'38,5', '40714':'39', '40715':'40', '40716':'40,5', '40717':'41'}
我不知道正则表达式是否适合这种方式,但一切似乎都指向它;但是,我真的不知道如何处理这样的数据。我真的可以在这里使用一些帮助。
提前致谢。
答案 0 :(得分:5)
使用json.loads
转换为Python对象后的字典理解应该这样做:
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'}