繁体   English   中英

如何从python文件中读取字典数据?

[英]How to read dictionary data from a file in python?

我有以下文件 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 创建字典?

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

import ast

...

with open("/path/to/file", "r") as data:
    dictionary = ast.literal_eval(data.read())

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

   >>> mydic= "{'a':0, 'b':0, 'c':0, 'd':0}"
    >>> eval(mydic)
    {'a': 0, 'c': 0, 'b': 0, 'd': 0}
    >>> 
>>> 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("'", '"')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM