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

时间:2017-02-28 18:07:41

标签: python regex python-2.7 dictionary

我正在尝试搜索一个我从网站上检索的相当复杂的字符串。这是来自在线商店的产品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'}

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

提前致谢。

1 个答案:

答案 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'}