我在处理JSON对象时非常新。所以,我的程序保存了一些推文和JSON对象。存储部分如下所示:
class MyListener(StreamListener):
def on_data(self, data):
try:
with open('Saved data/' + filename + '.json', 'a') as outfile:
outfile.write(data)
return True
except BaseException as e:
print('Error on_data: %s' % str(e))
return True
def on_error(self, status):
print(status)
return True
if stream:
twitter_stream = Stream(auth, MyListener())
twitter_stream.filter(track=[tracking_string])
生成一个带有一些推文的json对象,没有任何空行等等(在记事本中检查)。
开场部分如下:
with open('saved data/' + filename + '.json', 'r') as infile:
for line in infile:
tweet = json.loads(line)
tokens = preprocess(tweet['text'])
print('mark')
打印'标记'一度。但是对于第二次迭代,我在" tweet = json.loads(line)"说
JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1)
似乎有问题到达行号。 2在文件中,但我真的不明白为什么。
提前致谢
答案 0 :(得分:0)
保存到json:
json_text = json.dumps(your_dictionary, sort_keys=True, indent=4)
with open(filename, 'w') as json_file:
json_file.write(json_text)
阅读json:
with open(filename, 'r') as json_file:
text = json_file.read()
dictionary = json.loads(text)
为什么要按行读取文件?