'ÆØå'로 JSON을 인코딩하는 파이썬
문제
IM API에서 좌표를 검색하려고하지만 JSON 객체 중 하나에는 덴마크 문자가 포함되어 있으며 오류가 계속 발생합니다.이것은 내가 가진 것입니다 :
# -*- coding: utf-8 -*-
import urllib2
import json
import codecs
url='http://geo.oiorest.dk/adresser.json?postnr=1577&vejnavn=bernstorffsgade&husnr=16'
addressline = "%s, %s"
try:
data = urllib2.urlopen(url).read().decode('utf-8')
adresser = json.loads(data, encoding='utf-8')
for adresse in adresser:
print addressline % \
(adresse['etrs89koordinat']['øst'],
adresse['etrs89koordinat']['nord'])
except urllib2.HTTPError, e:
print "HTTP error: %d" % e.code
except urllib2.URLError, e:
print "Network error: %s" % e.reason.args[1]
.
INKEAL 오류 :
KeyError: '\xc3\xb8st'
. 해결책
디코딩 된 데이터는 유니 코드 문자열을 포함하므로 유니 코드 문자열을 사용하여 상황을보아야합니다.
print addressline % \
(adresse[u'etrs89koordinat'][u'øst'],
adresse[u'etrs89koordinat'][u'nord'])
.
(유니 코드 문자열과 기본 인코딩 간의 자동 변환) 때문에 유니 코드 문자열을 사용하는지 여부에 대해서만 유니 코드 문자열 만 사용하는지 여부에 대해서만 작동하는 문자열에는 작동하지만 악센트가있는 문자는 작동하지 않습니다.)
제휴하지 않습니다 StackOverflow