简体   繁体   English

从python中的字符串中提取列表

[英]Extracting a list from a string in python

I have a list of JSON objects as a string.我有一个 JSON 对象列表作为字符串。

str = "[{'key1':'value1','key2':'value2'}, {'key1':'value1','key2':'value2','key3':'value3'}]"

Is there any way to store the string as a list into a variable?有没有办法将字符串作为列表存储到变量中?

arr = [{'key1':'value1','key2':'value2'}, {'key1':'value1','key2':'value2','key3':'value3'}]

To not be bother by the json-quote problem, just use eval or ast.literal_eval为了不被 json-quote 问题打扰,只需使用evalast.literal_eval

value = eval(value)

Because to have valid JSON, you may have double quotes, then pass it to json.loads , but this could be a problem if you have a double or single quote in the content因为要获得有效的 JSON,您可能有双引号,然后将其传递给json.loads ,但如果内容中有双引号或单引号,这可能会出现问题

value = "[{'key1':'value1','key2':'value2'}, {'key1':'value1','key2':'value2','key3':'value3'}]"
value = json.loads(value.replace("'", '"'))

you could use ast.literal_eval :你可以使用ast.literal_eval

from ast import literal_eval
my_str = "[{'key1':'value1','key2':'value2'}, {'key1':'value1','key2':'value2','key3':'value3'}]"
arr = literal_eval(my_str)
arr

output:输出:

[{'key1': 'value1', 'key2': 'value2'},
 {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM