我下载了大量JSON格式的twitter数据,并将其保存到一个文本文件中。我现在想一行一行地读入它,并使用json.reads()
将它解码到字典中。你知道吗
我唯一的问题是它在第一行抛出一个错误,我假设这意味着函数不认为数据是JSON?我在这篇文章的底部加了一行我想解码的代码。当我只打印行时,代码工作正常,只有json.reads()
函数抛出错误。你知道吗
代码如下:
def decodeJSON(tweet_data):
for line in tweet_data:
parsedJSON = json.loads(line)
print(parsedJSON) # I just want to print for now to confirm it works.
错误如下:
File "/Users/cc756/Dropbox/PythonProjects/TwitterAnalysisAssignment/tweet_sentiment.py", line 17, in analyseSentiment
parsedJSON = json.loads(line) File "/Users/cc756/anaconda/envs/tensorflow/lib/python3.5/json/__init__.py", line 319, in loads
return _default_decoder.decode(s) File "/Users/cc756/anaconda/envs/tensorflow/lib/python3.5/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/Users/cc756/anaconda/envs/tensorflow/lib/python3.5/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
这是第一个字符串:
'b\\'{"delete":{"status":{"id":805444624881811457,"id_str":"805444624881811457","user_id":196129140,"user_id_str":"196129140"},"timestamp_ms":"1500994305560"}}\\''
我觉得这应该管用,我已经盯着这个看了一个小时,没有任何改善!你知道吗
您的字符串格式错误。我不确定在开始时需要做些什么来去掉
'b\\'
(这没有什么意义),但是手动将它输入shell可以得到以下结果:抱歉,我想发表评论,但是想象一下这篇文章在评论中。。。:)
我不确定您将字符串粘贴到问题中是怎么回事,但它遵循的是Python的无效格式,因此您可能需要更正这个问题。你知道吗
更新:问题是数据是二进制格式的,只需要用
data.decode('utf-8')
进行解码相关问题 更多 >
编程相关推荐