我有类似从AJAX发布请求中重新调整的字符串的列表:
["{'id': '1', 'name': 'John'}","{'id': '2', 'name': 'Paul'}"]
我用过ast.literal_eval()
,但引发了异常:
raise ValueError('malformed node or string: ' + repr(node))
>
> ls_j = request.form['journal_to_match']\
ls_j= ast.literal_eval(ls_j)
转换为词典列表的最佳方法是什么?
答案 0 :(得分:2)
似乎您的字符串是JSON格式的。您可以简单地做到:
import json
dict_list = [json.loads(s) for s in strings_list]
答案 1 :(得分:1)
这是您从API调用中获得的JSON响应。您可以使用json库解析数据。
import json
# dataList = ['{"id": "1", "name": "John"}','{"id": "2", "name": "Paul"}']
dataList = request.form['journal_to_match']
json_data = [json.loads(data) for data in dataList]
print(json_data)
答案 2 :(得分:0)
尝试以下
>>> import json
>>> ls_j = request.form['journal_to_match']
>>> [json.loads(e) for e in ls_j]
答案 3 :(得分:-1)
因此,您持有一个字符串列表,并希望将每个元素评估为一个字典? 只需执行以下操作:
res_list = [eval(dict_string) for dict_string in ls_j]
eval()
将读取任何字符串并执行该字符串,就像用户键入它一样