繁体   English   中英

Python 无法识别类似 Json 的响应

[英]Json-like response not recognized by Python

我得到了 urllib3 的响应(也尝试过请求),对其进行解码并接收到 json.loads,

这是使用decode('utf-8')后的数据,我希望将其作为 json:

json_thing = b'{\n"stuff": {\n"a": "1",\n"b": "2",\n"d": "3",\n"e": "4",\n"f": "5",\n"g": "",\n"h": "8",\n"i": "9",\n"j": "10",\n"k": "",\n"l": "13",\n"m": "",\n"n": "",\n"o": "",\n"p": [{\n"q":\xc2\xa0"19",\n"r": 1\n}],\n"s": "Jan 1, 2020 1:44 pm",\n"t": "Jan 1, 2020 1:44 pm"\n}\n}'

但我总是得到和错误

raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 18 column 14 (char 482)

看的时候,在“r”之后:只有一个普通的integer,在“q”\xc2\xa0处,是不是需要先把它清理掉?

问题是"q":\xc2\xa0"19",\n中的不间断空格字符。

在解码之后和反序列化之前替换它:

>>> json.loads(json_thing.decode('utf-8').replace('\N{NO-BREAK SPACE}', ' '))
{
    'stuff': {
        'a': '1',
        'b': '2',
        'd': '3',
        'e': '4',
        'f': '5',
        'g': '',
        'h': '8',
        'i': '9',
        'j': '10',
        'k': '',
        'l': '13',
        'm': '',
        'n': '',
        'o': '',
        'p': [{'q': '19', 'r': 1}],
        's': 'Jan 1, 2020 1:44 pm',
        't': 'Jan 1, 2020 1:44 pm'
    }
}
>>>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM