我正在创建一个应用程序,其中我有一个Dictionary(由特定的加密算法生成)变量并将其保存到文本文件中。我检索变量并将其再次转换为Dictionary,如下所示:
f = open( '/sk.txt')
t_ref = f.read()
requested_encrypted_file = ast.literal_eval(t_ref)
print type(requested_encrypted_file)
f.close()
包含密文的重要信息的Dictionary变量具有以下形式:
{'msg': '{"ALG": 0, "CipherText": "xcUHHV3ifPJKFqB8aL9fzQ==", "MODE": 2, "IV": "2Y2xDI+a7JRt7Zu6Vtq86g=="}', 'alg': 'HMAC_SHA1', 'digest': '4920934247257f548f3ca295455f5109c2bea437'}
问题是,当我从文件中检索此变量时,所有字段都是str而不是它们在保存到txt文件之前的类型?有没有一种简单的方法可以用正确的类型检索它们?
任何建议都会有所帮助并深表感激。
答案 0 :(得分:3)
如果您只需要处理基本数据类型,请保存并加载JSON序列化的数据。
import json
a = {'foo': 'bar', 'baz': 42, 'biz': True}
# Save
with open('test.txt', 'w') as outf:
json.dump(a, outf)
# Read
with open('test.txt', 'r') as inf:
b = json.load(inf)
b
将
{'baz':42,'biz':是的,'foo':'bar'}
答案 1 :(得分:2)
我会将pickle
模块用于dump
Python数据结构作为可序列化数据,然后load
。
pickle.dump(dictionary, open('data.p', 'w')) # write file with dictionary structure
savedData = pickle.load(open('data.p', 'r')) # reads the written file as dictionary