将列表的文本文件作为列表读入python

时间:2016-11-18 15:37:43

标签: python dictionary io

我有一个大文本文件,这是一个字典列表,如此

[{'a':'1', 'b':'2'},{'a':'3','b':'4'}]

我如何将其作为词典列表读入python?

3 个答案:

答案 0 :(得分:4)

您也可以使用print more_expressions

ast.literal_eval
  

帮助模块ast中的函数literal_eval:

     

literal_eval(node_or_string)       安全地评估表达式节点或包含Python的字符串       表达。提供的字符串或节点可能仅包含以下内容       Python文字结构:字符串,字节,数字,元组,列表,字符串,集合,布尔值和无。

我在https://stackoverflow.com/a/21154138/1415639

学到了这个技巧

答案 1 :(得分:2)

您可以使用eval

with open('filename') as f:
    d = eval(f.read())

请注意,eval应该谨慎使用,如评论中所述,因为如果您的控件中的输入不是100%,您最终可能会执行有害代码。

答案 2 :(得分:2)

您可以使用literal_eval中的ast这是更安全的eval解决方案。 您可以看到为什么不应该使用eval herehere

所以你想要的是:

from ast import literal_eval


with open('file.txt') as f:
    dictionaries = literal_eval(f.read().strip())