0

現在、Sentiment140 API を使用していくつかのツイートを分類しています。私は完全にPythonで書いています。すべて順調に進んでいますが、出力の整形と保存に問題があります。

次のコードを使用して、取得したデータを保存します。

data = json.dumps(values) # instead of urllib.urlencode(values)
response = urllib2.urlopen(url, data)
page = response.read()
print page
with open('result.json', 'w') as f:
  json.dump(page, f, indent=2)

printステートメントは私に次のことを与えます:

{"data":[{"id":"1","text":"How deep is your love - Micheal Buble Ft Kelly Rowland \\u00e2\\u2122\\u00a5","polarity":2,"meta":{"language":"en"}},{"id":"2","text":"RT @TrueTeenQuotes: #SongsThatNeverGetOld Nelly ft. Kelly Rowland - Dilemma","polarity":2,"meta":{"language":"en"}},{"id":"3","text":"RT @GOforCARL: Dilemma - Nelly Feat. Kelly Rowland #Ohh #SongsThatNeverGetOld","polarity":2,"meta":{"language":"en"}},{"id":"4","text":"#NP Kelly Rowland Grown Woman","polarity":2,"meta":{"language":"en"}}]}

これは、必要なすべてのデータを意味します...悲しいことに1行ですが、OKです。今、私は適切できれいな形式でデータを保存しようとしています. 保存されたファイルは次のようになります。

"{\"data\":[{\"id\":\"1\",\"text\":\"How deep is your love - Micheal Buble Ft Kelly Rowland \\\\u00e2\\\\u2122\\\\u00a5\",\"polarity\":2,\"meta\":{\"language\":\"en\"}},{\"id\":\"2\",\"text\":\"RT @TrueTeenQuotes: #SongsThatNeverGetOld Nelly ft. Kelly Rowland - Dilemma\",\"polarity\":2,\"meta\":{\"language\":\"en\"}},{\"id\":\"3\",\"text\":\"RT @GOforCARL: Dilemma - Nelly Feat. Kelly Rowland #Ohh #SongsThatNeverGetOld\",\"polarity\":2,\"meta\":{\"language\":\"en\"}},{\"id\":\"4\",\"text\":\"#NP Kelly Rowland Grown Woman\",\"polarity\":2,\"meta\":{\"language\":\"en\"}}]}\n"

それでもすべて 1 行で、すべて「\」を使用します。どのコマンドが不足していますか?

4

1 に答える 1

0

答えは自分で見つけました。それが最も美しい方法かどうかはわかりませんが:

# Encode file correctly
final = unicode(page, errors='ignore')
# Load file correctly
final = json.loads(final)
with open('result.json', 'w') as f:
    json.dump(final, f, indent=0)

仕事をした。

于 2013-07-10T17:34:00.227 に答える