如何把txt文件里面的内容快速转化为字典形式?
比如有这样一个字典AA = {1:'ert','123':,6:45}
把它写入一个txt文本文件,
f = open('123.txt',w)
f.write(f'{AA}')
f.close()
如何在读入这个txt文件后,快速的把里面的字符串重新转化为字典形式? 要将txt文件中的内容快速转化为字典形式,可以使用eval()函数。
首先,在写入txt文件时,不要使用f.write()方法直接写入字典的字符串形式,而是应该将字典通过json库转化为字符串形式后再写入,这样更安全且方便后续读取。
import json
AA = {1: 'ert', '123': 6, 45: 'abc'}
with open('123.txt', 'w') as f:
json.dump(AA, f)
此时,在txt文件中会得到以下内容:
{"1": "ert", "123": 6, "45": "abc"}
然后,我们可以使用eval()函数将字符串快速转化为字典。但是,请注意,由于eval()函数会执行字符串中的任意代码,因此在使用时需要确保字符串的安全性,以免造成安全风险。
import ast
with open('123.txt', 'r') as f:
content = f.read()
AA = ast.literal_eval(content)
print(AA)# 输出:{1: 'ert', '123': 6, 45: 'abc'}
在上述代码中,我们使用了ast模块的literal_eval()函数,它会将字符串转化为其对应的Python表达式,而不会执行任意代码,从而提高了安全性。
总结一下:将字典写入txt文件时,可使用json库的dump()函数进行序列化;读取txt文件并将内容转化为字典时,可使用ast模块的literal_eval()函数进行安全的字符串转换操作。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2023-12-28 20:07
要将txt文件中的内容快速转化为字典形式,可以使用eval()函数。
首先,在写入txt文件时,不要使用f.write( ...
如果代码中出现了汉字,存储到txt文件后就变成好像含有utf8或者utf16的字节,这个问题要如何解决? 子飞鱼 发表于 2023-12-28 21:13
如果代码中出现了汉字,存储到txt文件后就变成好像含 ...
如果代码中含有汉字,存储到txt文件后可能会出现编码问题,需要进行相应的编码和解码操作来解决这个问题。在写入txt文件时,可以指定文件的编码方式为utf-8,这样可以保证汉字被正确地存储在文件中。下面是一个示例代码:import jsonAA = {1: '你好', 2: '世界'}with open('123.txt', 'w', encoding='utf-8') as f: json.dump(AA, f, ensure_ascii=False)在上述代码中,我们通过指定'utf-8'作为编码方式,ensure_ascii=False来确保汉字正常存储在txt文件中。然后,当我们读取txt文件时,也需要使用相同的编码方式进行解码操作。import jsonAA = {}with open('123.txt', 'r', encoding='utf-8') as f: content = f.read() AA = json.loads(content)print(AA)# 输出:{1: '你好', 2: '世界'}在上述代码中,我们同样指定了'utf-8'作为编码方式,并使用json.loads()函数对txt文件的内容进行解码,得到原始的字典内容。通过以上方式,可以解决在代码中含有汉字时存储到txt文件后出现的编码问题。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 FishC 发表于 2023-12-28 21:14
如果代码中含有汉字,存储到txt文件后可能会出现编码问题,需要进行相应的编码和解码操作来解决这个问题 ...
谢谢 子飞鱼 发表于 2023-12-28 21:15
谢谢
不客气!如果还有其他问题,欢迎随时提问。祝您编程学习顺利!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]