[英]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 问题打扰,只需使用eval
或ast.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.