python用 'æøå'编码json

标签 python json urlopen

我尝试从 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]

我得到的错误:

KeyError: '\xc3\xb8st'

最佳答案

您的解码数据包含 Unicode 字符串,因此您需要使用 Unicode 字符串进行查找:

print addressline % \
    (adresse[u'etrs89koordinat'][u'øst'],
     adresse[u'etrs89koordinat'][u'nord'])

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

关于python用 'æøå'编码json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23046454/

相关文章:

python - python中的快速、大宽度、非加密字符串散列

python - 我从哪里开始使用网络机器人?

mysql - 在 Groovy SQL 中使用参数的正确方法

python - 在没有 SSL 证书验证的情况下使用 urllib 发布数据

Python auth_handler 不适合我

python - 有人可以解释一下这个词频统计吗?

python - PyQt中的无限背景while循环

php - 解析 PHP 问题 - fopen() 对于 CSV 文件无法正常工作

java - Ninja 框架端点在尝试将 JSON 映射到自定义对象时抛出 500 错误

python - 如何识别并跟踪链接,然后使用 BeautifulSoup 从新网页打印数据