Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为字典列表Python3_Python_List_Dictionary - Fatal编程技术网

将字符串转换为字典列表Python3

将字符串转换为字典列表Python3,python,list,dictionary,Python,List,Dictionary,使用Python 3.5.2,将字符串转换为字典列表的最佳方法是什么 我正在抓取一个站点,以下内容作为长度为1的列表返回: (为可读性而格式化) 谢谢使用模块对字符串进行预处理,然后使用模块将其解析到字典中 假设您已将数据转换为字符串,并且您知道某些规则适用于内容*,则可以尝试以下操作: str = '...' escaped = re.sub('(?<=[^,:{}])(\\\")(?=[^,:{}])','\\"',str) dict = json.loads(escaped)

使用Python 3.5.2,将字符串转换为字典列表的最佳方法是什么

我正在抓取一个站点,以下内容作为长度为1的列表返回:

(为可读性而格式化)

谢谢

使用模块对字符串进行预处理,然后使用模块将其解析到字典中

假设您已将数据转换为字符串,并且您知道某些规则适用于内容*,则可以尝试以下操作:

str = '...'

escaped = re.sub('(?<=[^,:{}])(\\\")(?=[^,:{}])','\\"',str)

dict = json.loads(escaped)
str='…'

escaped=re.sub(“(?
ast.literal\u eval(my\u str)
@inspectorG4dget我想
literal\u eval
会被小写的
true
阻塞,你就不能把它解析为吗?这到底是怎么回事?啊哈,似乎被一些转义的
\”
阻塞了。。。
for item in form_data_returned:
    print item['variation_id']  # prints 573  574  575
from collections import defaultdict

# Set aliases for `true` and `false` in the output so
# we won't get NameError exceptions thrown.
true = True
false = False

raw = [
{"variation_id":573,"variation_is_visible":true,"variation_is_active":true,"is_purchasable":true,"display_price":1099,"display_regular_price":1099,"attributes":{"attribute_pa_size":"king"},"image_src":"","image_link":"","image_title":"","image_alt":"","image_caption":"","image_srcset":"","image_sizes":"","price_html":"<span class=\"price\"><span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">&#82;<\/span>1,099.00<\/span><\/span>","availability_html":"<p class=\"stock in-stock\">2 in stock<\/p>","sku":"6006239211693","weight":" kg","dimensions":"","min_qty":1,"max_qty":2,"backorders_allowed":false,"is_in_stock":true,"is_downloadable":false,"is_virtual":false,"is_sold_individually":"no","variation_description":""},

{"variation_id":574,"variation_is_visible":true,"variation_is_active":true,"is_purchasable":true,"display_price":989,"display_regular_price":989,"attributes":{"attribute_pa_size":"queen"},"image_src":"","image_link":"","image_title":"","image_alt":"","image_caption":"","image_srcset":"","image_sizes":"","price_html":"<span class=\"price\"><span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">&#82;<\/span>989.00<\/span><\/span>","availability_html":"<p class=\"stock in-stock\">2 in stock<\/p>","sku":"6006239211686","weight":" kg","dimensions":"","min_qty":1,"max_qty":2,"backorders_allowed":false,"is_in_stock":true,"is_downloadable":false,"is_virtual":false,"is_sold_individually":"no","variation_description":""},

{"variation_id":575,"variation_is_visible":true,"variation_is_active":true,"is_purchasable":true,"display_price":949,"display_regular_price":949,"attributes":{"attribute_pa_size":"double"},"image_src":"","image_link":"","image_title":"","image_alt":"","image_caption":"","image_srcset":"","image_sizes":"","price_html":"<span class=\"price\"><span class=\"woocommerce-Price-amount amount\"><span class=\"woocommerce-Price-currencySymbol\">&#82;<\/span>949.00<\/span><\/span>","availability_html":"<p class=\"stock in-stock\">2 in stock<\/p>","sku":"6006239211679","weight":" kg","dimensions":"","min_qty":1,"max_qty":2,"backorders_allowed":false,"is_in_stock":true,"is_downloadable":false,"is_virtual":false,"is_sold_individually":"no","variation_description":""}

]

# keys being a set ensures that every key occurs only once.
keys = set()

# Initializing form_data_returned as a defaultdict allows
# us to access keys that are not already in form_data_returned.
# For example form_data_returned['weight'].append('kg') would throw
# KeyError exception for an empty form_data_returned had we declared
# it as a normal dict().
form_data_returned = defaultdict(list)

for dictionary in raw:
    keys.update(dictionary.keys())
    for key in keys:
        form_data_returned[key].append(dictionary[key])
print(form_data_returned['variation_id'])
>>> [573, 574, 575]
str = '...'

escaped = re.sub('(?<=[^,:{}])(\\\")(?=[^,:{}])','\\"',str)

dict = json.loads(escaped)