使用 read_pickle 将 json_pickle(d) 推文读入数据框时出现 KeyError
KeyError reading json_pickle(d) tweets into dataframe using read_pickle
使用 python 2.7 和 jsonpickle 和 pandas 库我使用 jsonfile.write(jsonpickle.encode(tweets._json,unpicklable=False)+'\n')
将一些推文保存到 .txt 文件
它使用 jsonpickle
包
对推文的 json 值进行编码
当我尝试使用不同的脚本将 txt 文件读入 pandas 数据帧时
tester = pandas.read_pickle(fileToProcess)
我的回溯最近一次调用是
File "C:\Python27\lib\pickle.py", line 858, in load
dispatchkey
KeyError: '{'
我创建的许多文件都出现了同样的错误。
这是一个大小为 3.8MB 的示例文件 Sample Tweets File
我是 json 文件的新手,但是熊猫或泡菜专家可以帮助我将我的推文放入数据框吗?
read_pickle
方法旨在反序列化使用 pickle 模块 创建的 数据,例如使用 Series
、DataFrames
或 Panel
的 to_picke
方法序列化的数据。如this answer.
所示
如果您正在使用 jsonpickle.encode
,您应该使用库提供的双重方法 jsonpickle.decode
来反序列化您的数据。
总的来说,我认为你最好使用pandas'序列化机制。
但是如果你太想使用jsonpickle
:
- 请注意文档中的以下内容,
If you will never need to load (regenerate the Python class from JSON), you can pass in the keyword unpicklable=False
因此,您不应将 unpicklable=False
传递给 encode
方法。
- 您似乎将每个对象保存到文件中的一行,所以您应该这样做。
类似的东西,
tweets = []
for line in fileToProcess:
line = line[:-1] # Drop '\n' char
tweets.append(jsonpickle.decode(line))
使用 python 2.7 和 jsonpickle 和 pandas 库我使用 jsonfile.write(jsonpickle.encode(tweets._json,unpicklable=False)+'\n')
将一些推文保存到 .txt 文件
它使用 jsonpickle
包
当我尝试使用不同的脚本将 txt 文件读入 pandas 数据帧时
tester = pandas.read_pickle(fileToProcess)
我的回溯最近一次调用是
File "C:\Python27\lib\pickle.py", line 858, in load dispatchkey KeyError: '{'
我创建的许多文件都出现了同样的错误。 这是一个大小为 3.8MB 的示例文件 Sample Tweets File 我是 json 文件的新手,但是熊猫或泡菜专家可以帮助我将我的推文放入数据框吗?
read_pickle
方法旨在反序列化使用 pickle 模块 创建的 数据,例如使用 Series
、DataFrames
或 Panel
的 to_picke
方法序列化的数据。如this answer.
如果您正在使用 jsonpickle.encode
,您应该使用库提供的双重方法 jsonpickle.decode
来反序列化您的数据。
总的来说,我认为你最好使用pandas'序列化机制。
但是如果你太想使用jsonpickle
:
- 请注意文档中的以下内容,
If you will never need to load (regenerate the Python class from JSON), you can pass in the keyword unpicklable=False
因此,您不应将 unpicklable=False
传递给 encode
方法。
- 您似乎将每个对象保存到文件中的一行,所以您应该这样做。
类似的东西,
tweets = []
for line in fileToProcess:
line = line[:-1] # Drop '\n' char
tweets.append(jsonpickle.decode(line))