【问题标题】:How to resolve pickle encoding?如何解决泡菜编码?
【发布时间】:2020-01-20 01:40:14
【问题描述】:

我在保存我的泡菜文件时遇到了问题。手动打开 pickle 文件时收到错误消息:

Error: C:\Users\df.pkl is not UTF-8 encoded. Saving disabled. See console for more details.

这是我为发生错误所做的:

pickle.dump(df, open('df.pkl', 'rb'))

然后是:

df = pickle.load(open('df.pkl', 'rb'))

【问题讨论】:

  • 在写入二进制文件时编码应该无关紧要。我认为您需要使用模式'wb' 打开文件以输出到它。有关使用 pickle 的示例,请参阅我对 Saving an Object (Data persistence) 的回答。
  • 您应该在写入模式 'wb' 下打开 pickle 转储文件
  • 我强烈建议使用上下文管理器来处理这些文件对象!
  • 我将 pickle 转储文件更改为写入模式 'wb' 但错误仍然存​​在。顺便说一句,我正在腌制一个数据框,这会影响吗?
  • “手动打开pickle文件”是什么意思?

标签: python utf-8 pickle


【解决方案1】:

我不确定您的问题是否来自脚本编码: 尝试在代码开头添加:

#coding: utf-8 

也许另一种解决方案是使用 pandas 的 to_pickle 函数(因为我认为你想腌制一个 DataFrame): https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_pickle.html

保存:

df.to_pickle("C:\Users\df.pkl")

加载:

df = pd.read_pickle("C:\Users\df.pkl")

【讨论】:

    猜你喜欢
    • 2017-05-06
    • 2015-06-10
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    相关资源
    最近更新 更多