JSON编码和从URL下载

时间:2016-06-01 19:48:46

标签: python json encoding

我正在尝试从Steam库存中获取JSON。我得到这样的数据:

def downloadString(url):
    req = urllib.request.Request(
        url, 
        data=None, 
        headers={
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
        }
    )
    f = urllib.request.urlopen(req)
    return f.read().decode("utf-8")

现在,我遇到编码问题。 Steam正在使用像“黑星”('\ u2605')这样的符号,导致json部分崩溃:

def test(string):
    print(json.loads(string))

test(downloadString(url))
  

文件“C:\ Python34 \ lib \ encodings \ cp1252.py”,第19行,编码       return codecs.charmap_encode(input,self.errors,encoding_table)[0]   UnicodeEncodeError:'charmap'编解码器无法编码位置83559中的字符'\ u2605':字符映射到

我真的不明白我怎么能做别的事......任何帮助都会有帮助。

1 个答案:

答案 0 :(得分:0)

JSON可以用UTF-8,UTF-16或UTF-32中的任何一种编码。我会尝试解码为UTF-16而不是UTF-8。