DarkSky APIを照会するリクエストを使用すると、UTF-8でエンコードされたドキュメントが返されますが、文字列はデフォルトでエラーのあるASCIIになります。私がUTF-8として明示的にエンコードすると、エラーはありませんが、文字列に余分な文字と生のUnicodeが含まれています。どうしたの?私は、SublimeでUTF-8エンコーディングを使うようにpyファイルを設定しました。返しPythonリクエストではUTF-8だと言われています。なぜユニコード文字が残っているのですか?
# Fetch weather data from DarkSky, parse resulting JSON
try:
url = "https://api.darksky.net/forecast/" + API_KEY + "/" + LAT + "," + LONG + "?exclude=[minutely,hourly,alerts,flags]&units=us"
response = requests.get(url)
data = response.json()
print(response.headers['content-type'])
print(response.encoding)
:返し application/json; charset=utf-8
d_summary = data['daily']['summary']
print("Daily Summary: ", d_summary.encode('utf-8'))
:Daily Summary: b'No precipitation throughout the week, with temperatures rising to 82\xc2\xb0F on Tuesday.'
Unicodeテキストと正面に余分な文字や引用された部分文字列で何が起こっている
?
MacでSublimeを使用していますが、それでも問題になる可能性があります。 Python 3.6.3で同じコードを実行しています。 IDEはユニコードのテキストとシンボルを表示します。最初にエラーが発生しました: print UnicodeEncodeError: 'ascii'コーデックは、文字 '\ xb0'を位置69にエンコードできません:序数は範囲外(128) ' IDEに同じd_summaryを印刷すると、 ''降水は一週間中、気温は木曜日に64°Fに下がります.'' – Ben
Ah! https://stackoverflow.com/questions/39576308/printing-utf-8-in-python-3-using-sublime-text-3のように聞こえます! – bobince
ありがとうございました!私はまだコーディングに新しいですし、私はこれで時間を投げました。最終的に何が起こっていたか、それを修正する方法を理解してうれしい! – Ben