парсинг unicoded твит с использованием json python - PullRequest
0 голосов
/ 10 марта 2012

Есть много сообщений о разборе твиттера json, но ни один из тех, что я видел, не решил мою проблему.

Это код

import json

file = open('tweet', 'r')
tweet = file.read()
#{"geo":null,"text":"Lmao!! what time? I dont finish evening cleaning till 5 RT \u201c@some_user: football anyone?.....i wanna have a kickabout :(\u201d"}
#{"geo":null,"text":"Lmao!! what time? I dont finish evening cleaning till 5 RT @some_user: football anyone?.....i wanna have a kickabout :("}
def parseStreamingTweet(tweet):
    try:
        singleTweetJson = json.loads(tweet)
        for index in singleTweetJson:
            if index == 'text':
                print "text : ", singleTweetJson[index]
    except ValueError:
        print "Error ", tweet
        print ValueError
        return

parseStreamingTweet(tweet)

Это тестовая программа. Твит приходит в поток, и для проверки я сохранил твит в файл и проверил. Существует отредактированная часть твиттера.

Может ли кто-нибудь сказать мне, как разобрать твит, которые имеют единый код? Первый твит в комментарии не кодируется, а второй - нет. Сначала возникает ошибка, при удалении строки uni-кода разбор успешен. Какое может быть решение?

1 Ответ

2 голосов
/ 10 марта 2012

Я думаю, что ваш код работает, причина ошибки, вероятно, из-за UnicodeEncodeError, которая происходит, когда вы пытаетесь вывести значение Unicode в терминал. Я предполагаю, что вы вызываете скрипт в терминале, не поддерживающем Unicode. Если вместо этого вы напечатаете repr значения Unicode или (запишете его в выходной файл), оно, вероятно, будет работать:

print "text : ", repr(singleTweetJson[index])

Также обычно плохая практика - скрывать определенные исключения / сообщения об ошибках с помощью общих универсальных исключений / сообщений об ошибках.

...