gpt4 book ai didi

python - 如何将页面源代码中的json解码为字典?

转载 作者:行者123 更新时间:2023-12-01 06:50:30 25 4
gpt4 key购买 nike

以下是页面源代码中的一些 JSON:

match_info  = JSON.parse('\x7B\x22id\x22\x3A\x2211768\x22,\x22fid\x22\x3A\x221376025\x22,\x22h\x22\x3A\x2272\x22,\x22a\x22\x3A\x2279\x22,\x22date\x22\x3A\x222019\x2D11\x2D23\x2015\x3A00\x3A00\x22,\x22league_id\x22\x3A\x221\x22,\x22season\x22\x3A\x222019\x22,\x22h_goals\x22\x3A\x220\x22,\x22a_goals\x22\x3A\x222\x22,\x22team_h\x22\x3A\x22Everton\x22,\x22team_a\x22\x3A\x22Norwich\x22,\x22h_xg\x22\x3A\x220.812693\x22,\x22a_xg\x22\x3A\x221.80849\x22,\x22h_w\x22\x3A\x220.1424\x22,\x22h_d\x22\x3A\x220.2108\x22,\x22h_l\x22\x3A\x220.6468\x22,\x22league\x22\x3A\x22EPL\x22,\x22h_shot\x22\x3A\x2218\x22,\x22a_shot\x22\x3A\x2213\x22,\x22h_shotOnTarget\x22\x3A\x227\x22,\x22a_shotOnTarget\x22\x3A\x225\x22,\x22h_deep\x22\x3A\x2215\x22,\x22a_deep\x22\x3A\x224\x22,\x22a_ppda\x22\x3A\x228.2174\x22,\x22h_ppda\x22\x3A\x225.9565\x22\x7D');

尝试使用 json.loads() 方法将其转换为字典时出现以下错误:

Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
json.loads(shots)
File "C:\Users\turnc\AppData\Local\Programs\Python\Python37-32\lib\json\__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "C:\Users\turnc\AppData\Local\Programs\Python\Python37-32\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\turnc\AppData\Local\Programs\Python\Python37-32\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

使用双引号也没有帮助。

如何在 Python 中将此字符串转换为字典?

最佳答案

试试这个 - 将其转换为 bytes使用 b string prefix 键入对象:

>>> json.loads(b'\x7B\x22id\x22\x3A\x2211768\x22,\x22fid\x22\x3A\x221376025\x22,\x22h\x22\x3A\x2272\x22,\x22a\x22\x3A\x2279\x22,\x22date\x22\x3A\x222019\x2D11\x2D23\x2015\x3A00\x3A00\x22,\x22league_id\x22\x3A\x221\x22,\x22season\x22\x3A\x222019\x22,\x22h_goals\x22\x3A\x220\x22,\x22a_goals\x22\x3A\x222\x22,\x22team_h\x22\x3A\x22Everton\x22,\x22team_a\x22\x3A\x22Norwich\x22,\x22h_xg\x22\x3A\x220.812693\x22,\x22a_xg\x22\x3A\x221.80849\x22,\x22h_w\x22\x3A\x220.1424\x22,\x22h_d\x22\x3A\x220.2108\x22,\x22h_l\x22\x3A\x220.6468\x22,\x22league\x22\x3A\x22EPL\x22,\x22h_shot\x22\x3A\x2218\x22,\x22a_shot\x22\x3A\x2213\x22,\x22h_shotOnTarget\x22\x3A\x227\x22,\x22a_shotOnTarget\x22\x3A\x225\x22,\x22h_deep\x22\x3A\x2215\x22,\x22a_deep\x22\x3A\x224\x22,\x22a_ppda\x22\x3A\x228.2174\x22,\x22h_ppda\x22\x3A\x225.9565\x22\x7D')
{'id': '11768',
'fid': '1376025',
'h': '72',
'a': '79',
'date': '2019-11-23 15:00:00',
'league_id': '1',
'season': '2019',
'h_goals': '0',
'a_goals': '2',
'team_h': 'Everton',
'team_a': 'Norwich',
'h_xg': '0.812693',
'a_xg': '1.80849',
'h_w': '0.1424',
'h_d': '0.2108',
'h_l': '0.6468',
'league': 'EPL',
'h_shot': '18',
'a_shot': '13',
'h_shotOnTarget': '7',
'a_shotOnTarget': '5',
'h_deep': '15',
'a_deep': '4',
'a_ppda': '8.2174',
'h_ppda': '5.9565'}

或者使用 results 变量中的字符串:

>>> json.loads(bytes(result, 'utf-8'))
{'id': '11768',
'fid': '1376025',
'h': '72',
'a': '79',
'date': '2019-11-23 15:00:00',
'league_id': '1',
'season': '2019',
'h_goals': '0',
'a_goals': '2',
'team_h': 'Everton',
'team_a': 'Norwich',
'h_xg': '0.812693',
'a_xg': '1.80849',
'h_w': '0.1424',
'h_d': '0.2108',
'h_l': '0.6468',
'league': 'EPL',
'h_shot': '18',
'a_shot': '13',
'h_shotOnTarget': '7',
'a_shotOnTarget': '5',
'h_deep': '15',
'a_deep': '4',
'a_ppda': '8.2174',
'h_ppda': '5.9565'}

关于python - 如何将页面源代码中的json解码为字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59029727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com