문제

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'])
.

(유니 코드 문자열과 기본 인코딩 간의 자동 변환) 때문에 유니 코드 문자열을 사용하는지 여부에 대해서만 유니 코드 문자열 만 사용하는지 여부에 대해서만 작동하는 문자열에는 작동하지만 악센트가있는 문자는 작동하지 않습니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top