6

我有以下文件 dic.txt:

{'a':0, 'b':0, 'c':0, 'd':0}

我想阅读它的内容并用作字典。输入新数据值后,我需要将它们写入该文件。基本上我需要一个脚本来处理字典,更新它的值并保存它们以供以后使用。

我有一个工作脚本,但无法弄清楚如何将 dic.txt 的内容实际读入脚本中的变量。因为当我尝试这个时:

file = '/home/me/dic.txt'
dic_list = open(file, 'r')
mydic = dic_list
dic_list.close()

我得到的 mydic 是一个 str。我不能操纵它的价值。所以这就是问题所在。如何从 dic.txt 创建字典?

4

3 回答 3

12

您需要解析数据才能从字符串中获取数据结构,幸运的是,Python 提供了安全解析 Python 数据结构的函数:ast.literal_eval(). 例如:

import ast

...

with open("/path/to/file", "r") as data:
    dictionary = ast.literal_eval(data.read())
于 2012-12-10T21:36:00.877 回答
4

您可以使用 python 内置函数 eval():

   >>> mydic= "{'a':0, 'b':0, 'c':0, 'd':0}"
    >>> eval(mydic)
    {'a': 0, 'c': 0, 'b': 0, 'd': 0}
    >>> 
于 2014-03-03T14:06:18.947 回答
-1
>>> import json
>>> json.loads('{"a":0, "b":0, "c":0, "d":0}')
{u'a': 0, u'c': 0, u'b': 0, u'd': 0}

所以

with open('/path/to/file', 'r') as f:
    d = json.loads(f.read().replace("'", '"')
于 2012-12-10T21:38:26.010 回答