在Python中打开JSON对象时出错

时间:2016-02-24 10:51:32

标签: python json twitter

我在处理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在文件中,但我真的不明白为什么。

提前致谢

1 个答案:

答案 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)

为什么要按行读取文件?