如何将字符串列表转换为字典列表?

时间:2020-08-10 17:55:56

标签: python

我有类似从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)

转换为词典列表的最佳方法是什么?

4 个答案:

答案 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()将读取任何字符串并执行该字符串,就像用户键入它一样

相关问题