Python:json数据写入文件str

时间:2014-05-15 08:51:45

标签: python json string twitter


嗨!这是代码:

def on_data(self, data):
    j_data = json.loads(data)
    tweet = data.split(',"text":"')[1].split('","source')[0]
    print j_data[u"text"]


    saveTweet = str(time.time())+'::'+tweet
    saveFile = open('tweetDB1.csv','a')
    saveFile.write(saveTweet)
    saveFile.write('\n')
    saveFile.close()

BUT!我需要在文件中写一个推文作为字符串,没有任何garbarge。如果我写打印推文(不打印j_data [u“text”])我将有utf-8代码,而不是编码: - \ u0422 \ u044b \ u0432 \ u0438 \ u0434 \ u0435 \ u043b

我该如何解决?

2 个答案:

答案 0 :(得分:0)

我认为您应该对数据进行编码。

saveTweet=saveTweet.encode(encoding='utf-8')

答案 1 :(得分:0)

要仅将文本字段附加到CSV文件,请使用:

def on_data(self, data):
    j_data = json.loads(data)
    tweet = j_data[u"text"]

    with open('tweetDB1.csv', 'a') as save_file:
        save_file.write('{}::{}\n'.format(time.time(), tweet.encode('utf8'))

这会将原始JSON数据加载到字典中,使用 text字段,并在写入文件时将其编码为UTF-8。

您的版本使用了JSON编码的字符串,完全忽略了j_data字典。您也可以删除json.loads()电话。 JSON使用\u....转义序列来表示Unicode代码点。上面写的是UTF-8数据。