KeyError读取json_pickle(d)使用read_pickle将数据推送到数据帧

时间:2015-12-16 20:54:05

标签: python json pandas twitter jsonpickle

使用python 2.7和jsonpickle和pandas库我使用jsonfile.write(jsonpickle.encode(tweets._json,unpicklable=False)+'\n')将一些推文保存到.txt文件中 它使用jsonpickle

编码推文的json值

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

我追溯的最近一次电话是

  

文件" C:\ Python27 \ lib \ pickle.py",第858行,加载       dispatchkey   KeyError:' {'

我在创建的文件中遇到了同样的错误。 这是一个大小为3.8 MB的示例文件Sample Tweets File 我是json文件的新手,但是熊猫或泡菜专家可以帮我把我的推文变成数据帧吗?

1 个答案:

答案 0 :(得分:1)

read_pickle方法旨在使用pickle模块对创建的数据进行反序列化,例如:使用to_pickeSeriesDataFrames Panel方法序列化的数据。如this answer中所示。

如果您使用的是jsonpickle.encode,则应使用库jsonpickle.decode提供的双重方法对数据进行反序列化。

总的来说,我认为你最好使用pandas的序列化机制。

但如果你想要使用jsonpickle太糟糕了:

  1. 请注意以下文档:
      

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

  2. 所以,你不应该将unpicklable=False传递给encode方法。

    1. 您似乎将每个对象保存到文件中的一行,因此您应该这样做。
    2. 这方面的事情,

      tweets = []
      for line in fileToProcess:
          line = line[:-1]  # Drop '\n' char
          tweets.append(jsonpickle.decode(line))