Verwendung von Anfragen zur Abfrage der DarkSky-API besagt, dass es ein UTF-8-codiertes Dokument zurückgibt, aber die Zeichenfolge standardmäßig auf ASCII mit Fehler gesetzt ist. Wenn ich explizit als UTF-8 codiere, gibt es keine Fehler, aber String enthält zusätzliche Zeichen und unformatierten Unicode. Was ist los? Ich habe meine Py-Datei so eingestellt, dass sie die UTF-8-Kodierung in Sublime verwendet.Python-Anfragen sagen, es ist UTF-8, also warum gibt es noch Unicode-Zeichen?
# 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)
, die zurückgibt: application/json; charset=utf-8
d_summary = data['daily']['summary']
print("Daily Summary: ", d_summary.encode('utf-8'))
, die zurückgibt: Daily Summary: b'No precipitation throughout the week, with temperatures rising to 82\xc2\xb0F on Tuesday.'
Was mit Unicode-Text mit den zusätzlichen Zeichen vor und zitierte Teilzeichenfolge los?
Verwendung von Sublime auf einem Mac, aber das könnte immer noch das Problem sein. Den gleichen Code im Python ausführen 3.6.3. IDE zeigt den Unicode-Text und die Symbole gut an. Zuerst der Fehler von Sublime: 'print (" Tägliche Zusammenfassung: ", d_summary)' erzeugt 'UnicodeEncodeError: 'ascii' Codec kann das Zeichen '\ xb0' nicht an Position 69 codieren: Ordnungszahl nicht im Bereich (128)' Drucken der gleichen d_summary in der IDE gibt 'No Niederschlag während der Woche, mit Temperaturen bei 64 ° F am Donnerstag Boden. – Ben
Ah! Klingt wie https://stackoverflow.com/questions/39576308/printing-utf-8-in-python-3-using-sublime-text-3 dann! – bobince
Vielen Dank! Ich bin noch neu im Programmieren und habe Stunden damit verbracht. Freut mich endlich zu verstehen, was los ist und wie ich es beheben kann! – Ben