[英]How do I encode/decode a dictionary in Python 3 to/from an external file?
我对编码和解码还比较陌生,实际上我完全没有经验。
我想知道,如何将Python 3中的字典解码为无法读取的格式,从而阻止某人在程序外部对其进行修改?
同样,我该如何从该文件中读取并对字典进行编码呢?
我的测试代码现在仅写入和读取纯文本文件。
import ast
myDict = {}
#Writer
fileModifier = open('file.txt', 'w')
fileModifier.write(str(myDict)))
fileModifier.close()
#Reader
fileModifier = open('file.txt', 'r')
myDict = ast.literal_eval(fileModifier.read())
fileModifier.close()
根据字典的内容,您可以使用json或pickle之类的编码库(用于存储复杂的python数据结构)。
这是一个使用json的示例,要使用pickle,只需将所有json
实例替换为pickle
,就可以了。
import json
myDict = {}
#Writer
fileModifier = open('file.txt', 'w'):
json.dump(myDict, fileModifier)
fileModifier.close()
#Reader
fileModifier = open('file.txt', 'r'):
myDict = json.load(fileModifier)
fileModifier.close()
编码/解码的一种替代方法是简单地使用文件作为dict
,而python有shelve
模块来执行此操作。 该模块使用文件作为数据库,并为其提供类似dict
的界面。
它有一些限制,例如键必须是字符串,并且由于它执行I / O操作,因此显然比普通dict
慢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.