1

使用 python 2.7 和 jsonpickle 和 pandas 库,我将一些推文保存到一个 .txt 文件中,使用该文件使用包jsonfile.write(jsonpickle.encode(tweets._json,unpicklable=False)+'\n') 对推文的 json 值进行编码jsonpickle

当我尝试使用不同的脚本将 txt 文件读入熊猫数据框时 tester = pandas.read_pickle(fileToProcess)

我的回溯最近的电话是

文件“C:\Python27\lib\pickle.py”,第 858 行,在 load dispatchkey KeyError: '{'

我创建的许多文件都出现相同的错误。这是一个示例文件,大小 3.8MB

4

1 回答 1

1

read_pickle方法旨在反序列化使用 pickle 模块创建的数据,例如使用或的to_picke方法序列化的数据。如this answer所示。SeriesDataFramesPanel

如果您正在使用jsonpickle.encode,则应该使用库提供的双重方法jsonpickle.decode来反序列化您的数据。

一般来说,我认为你最好使用熊猫的序列化机制。

但是,如果您太想使用jsonpickle

  1. 请注意文档中的以下内容,

    如果您永远不需要加载(从 JSON 重新生成 Python 类),您可以传入关键字 unpicklable=False

所以,你不应该传递unpicklable=Falseencode方法。

  1. 您似乎将每个对象保存到文件中的一行,所以您应该这样做。

沿着这条线的东西,

tweets = []
for line in fileToProcess:
    line = line[:-1]  # Drop '\n' char
    tweets.append(jsonpickle.decode(line)) 
于 2015-12-16T21:09:21.563 回答