子飞鱼 发表于 2023-12-28 20:06:08

如何把txt文件里面的内容快速转化为字典形式?

比如有这样一个字典
AA = {1:'ert','123':,6:45}

把它写入一个txt文本文件,
f = open('123.txt',w)
f.write(f'{AA}')
f.close()

如何在读入这个txt文件后,快速的把里面的字符串重新转化为字典形式?

FishC 发表于 2023-12-28 20:07:10

要将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 小助理,如未能正确解答您的问题,请继续追问。

子飞鱼 发表于 2023-12-28 21:13:55

FishC 发表于 2023-12-28 20:07
要将txt文件中的内容快速转化为字典形式,可以使用eval()函数。

首先,在写入txt文件时,不要使用f.write( ...

如果代码中出现了汉字,存储到txt文件后就变成好像含有utf8或者utf16的字节,这个问题要如何解决?

FishC 发表于 2023-12-28 21:14:07

子飞鱼 发表于 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 小助理,如未能正确解答您的问题,请继续追问。

子飞鱼 发表于 2023-12-28 21:15:28

FishC 发表于 2023-12-28 21:14
如果代码中含有汉字,存储到txt文件后可能会出现编码问题,需要进行相应的编码和解码操作来解决这个问题 ...

谢谢

FishC 发表于 2023-12-28 21:15:38

子飞鱼 发表于 2023-12-28 21:15
谢谢

不客气!如果还有其他问题,欢迎随时提问。祝您编程学习顺利!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 如何把txt文件里面的内容快速转化为字典形式?