0

私はjsonでグーグルの結果を解析する方法を自分自身に教えていますが、このコードを実行すると(これは機能するはずです)、次のエラーが発生します:UnicodeEncodeError: 'charmap' codec can't encode character u'\u2014' in position 5: character maps to <undefined>。誰かが私を助けることができますか?

import urllib
import simplejson

query = urllib.urlencode({'q' : 'site:example.com'})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s&start=50' \
  % (query)
search_results = urllib.urlopen(url)
json = simplejson.loads(search_results.read())
results = json['responseData']['results']
for i in results:
  print i['title'] + ": " + i['url']
4

3 に答える 3

1

このエラーは、コンソール アプリケーションが Unicode データを stdout に送信するときに使用するエンコーディングが原因である可能性があります。と言う記事があります。

stdout のエンコーディングを確認します。

>>> import sys
>>> sys.stdout.encoding # On my machine I get this result:
'UTF-8'
于 2012-09-06T22:13:21.007 に答える
0

unicodeリテラルを使用します。

print i[u'title'] + u": " + i[u'url']

また:

jsondata = simplejson.load(search_results)
于 2012-09-06T21:44:10.640 に答える
0

私の推測では、エラーは simplejson.loads(search_results.read()) 行にあると思われます。おそらく、Python が取得しているデフォルトのエンコーディングが utf-8 ではなく、Google が utf-8 を返しているためです。

試してください: simplejson.loads(unicode(search_results.read(), "utf8")。

于 2012-09-06T22:13:17.200 に答える