You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python读取文件中字典序列时pickle报错的解决求助

解决读取文件中字典序列的问题

你的文件GFG.txt里是纯文本形式的Python字典字符串,而pickle模块是用来读取通过pickle.dump()序列化的二进制数据,这就是你报错的根本原因——用错了工具。

正确解决方案:使用ast.literal_eval()

ast.literal_eval()可以安全解析字符串形式的Python字面量(包括字典、列表等),完美适配你的文件格式:

import ast

dictionary_list = []
# 逐行读取文件并解析字典
with open('GFG.txt', 'r', encoding='utf-8') as f:
    for line in f:
        # 跳过空行(如果有的话)
        line = line.strip()
        if line:
            dict_obj = ast.literal_eval(line)
            dictionary_list.append(dict_obj)

# 验证结果
for d in dictionary_list:
    print(d)
    print(type(d))

为什么不用json?

你的字典里包含True(Python布尔值,首字母大写)和单引号,而JSON格式要求布尔值是小写的true,且字符串必须用双引号,直接用json.loads()会报错。ast.literal_eval()则完全兼容Python的语法规则,更适合处理这种场景。

内容的提问来源于stack exchange,提问作者HappyPy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:55:18