ast.literal_eval如何处理字典列表?

3
ast.literal_eval()能处理字典列表吗?我遇到了一个格式错误的字符串问题?

[[u'ABN', u'12', u'', 2.69, u'222.222.222.222', u'253', u'ID99', u'Savings', u'300', u'-120', u'Not Useful'], [u'DB', u'44', u'', 2.628, u'333.333.333.333', u'240', u'ID77', u'Savings', u'3371', u'-440', u'Not Useful']]


你能展示一下你正在尝试评估的字符串吗? - mgilson
我已经更新了数据样本。 - Error_Coding
2
只是让你知道,你的样本数据不是字典列表,而是列表列表。 - SethMMorton
你是如何将示例数据传递给 literal_eval 的? - SethMMorton
它在名为“values”的变量中,我正在执行“values = ast.literal_eval(values)”。 - Error_Coding
1个回答

3
ast.literal_eval()可以处理字典列表吗?
>>> import ast
>>> s = """[{'x': 1}, {'y': 2}]"""
>>> ast.literal_eval(s)
[{'x': 1}, {'y': 2}]

是的。

而且,就我看来,您的示例数据(一个列表的列表)也适用于我:

>>> s = """[[u'ABN', u'12', u'', 2.69, u'222.222.222.222', u'253', u'ID99', u'Savings', u'300', u'-120', u'Not Useful'], [u'DB', u'44', u'', 2.628, u'333.333.333.333', u'240', u'ID77', u'Savings', u'3371', u'-440', u'Not Useful']]"""
>>> import ast
>>> ast.literal_eval(s)
[[u'ABN', u'12', u'', 2.69, u'222.222.222.222', u'253', u'ID99', u'Savings', u'300', u'-120', u'Not Useful'], [u'DB', u'44', u'', 2.628, u'333.333.333.333', u'240', u'ID77', u'Savings', u'3371', u'-440', u'Not Useful']]

根据我发布的示例数据,我应该在将数据输入ast之前将字符串表示转换为字典列表吗? - Error_Coding
不确定它对你是如何工作的?可能是因为你正在分配给字符串,所以它才能正常工作,而不是直接操作。 - Error_Coding

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接