首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用“json”编码json

用“json”编码json
EN

Stack Overflow用户
提问于 2014-04-13 18:14:12
回答 1查看 743关注 0票数 2

我试图从API中检索坐标,但是json对象中有一个包含丹麦字母,我一直收到一个错误。这就是我所拥有的:

代码语言:javascript
复制
# -*- 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]

我所犯的错误:

代码语言:javascript
复制
KeyError: '\xc3\xb8st'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-13 18:22:26

解码后的数据包含Unicode字符串,因此需要使用Unicode字符串查找内容:

代码语言:javascript
复制
print addressline % \
    (adresse[u'etrs89koordinat'][u'øst'],
     adresse[u'etrs89koordinat'][u'nord'])

(无论是否使用Unicode字符串,您可能都会发现它适用于只包含非重音字符的字符串,这是因为Unicode与默认编码之间的自动转换,但对于重音字符则不起作用。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23046454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档