[英]Python JSON Loads with mixture of Hex and UTF 8 chars in string
我正在抓取一个网站,它返回一个混合了 UTF8 和十六进制的字符串
下面是一个示例
\x5B\x7B\x22id\x22\x3A\x2218210\x22,\x22minute\x22\x3A\x2272\x22,\x22result\x22\x3A\x22BlockedShot\x22,\x22X\x22\x3A\x220.789000015258789\x22,\x22Y\x22\x3A\x220.6409999847412109\x22,\x22xG\x22\x3A\x220.031017674133181572\x22,\x22player\x22\x3A\x22Cristian\x20Gamboa\x22,\x22h_a\x22\x3A\x22h\x22,\x22player_id\x22\x3A\x22855\x22,\x22situation\x22\x3A\x22OpenPlay\x22,\x22season\x22\x3A\x222014\x22,\x22shotType\x22\x3A\x22RightFoot\x22,\x22match_id\x22\x3A\x224633\x22,\x22h_team\x22\x3A\x22West\x20Bromwich\x20Albion\x22,\x22a_team\x22\x3A\x22Manchester\x20City\x22,\x22h_goals\x22\x3A\x221\x22,\x22a_goals\x22\x3A\x223\x22,\x22date\x22\x3A\x222014\x2D12\x2D26\x2015\x3A00\x3A00\x22,\x22player_assisted\x22\x3Anull,\x22lastAction\x22\x3A\x22TakeOn\x22\x7D,\x7B\x22id\x22\x3A\x2257726\x22,\x22minute\x22\x3A\x2284\x22,\x22result\x22\x3A\x22MissedShots\x22,\x22X\x22\x3A\x220.74\x22,\x22Y\x22\x3A\x220.6070000076293945\x22,\x22xG\x22\x3A\x220.022933539003133774\x22,\x22player\x22\x3A\x22Cristian\x20Gamboa\x22,\x22h_a\x22\x3A\x22a\x22,\x22player_id\x22\x3A\x22855\x22,\x22situation\x22\x3A\x22OpenPlay\x22,\x22season\x22\x3A\x222015\x22,\x22shotType\x22\x3A\x22RightFoot\x22,\x22match_id\x22\x3A\x22112\x22,\x22h_team\x22\x3A\x22Stoke\x22,\x22a_team\x22\x3A\x22West\x20Bromwich\x20Albion\x22,\x22h_goals\x22\x3A\x220\x22,\x22a_goals\x22\x3A\x221\x22,\x22date\x22\x3A\x222015\x2D08\x2D29\x2018\x3A00\x3A00\x22,\x22player_assisted\x22\x3Anull,\x22lastAction\x22\x3A\x22BallRecovery\x22\x7D\x5D
如果我将输出打印到我的控制台,然后我像这样复制并粘贴它
json.loads([sample from above])
没问题
但是我不能为每个响应都需要永远这样做,所以我使用漂亮的汤来加载网页,然后找到包含我需要的字符串我将其加载到变量数据中,当我说打印数据时,我得到了确切的字符串如上例所示,但 json 加载不起作用
import re
import json
x =re.findall(r"'(.*?)'", modify, re.DOTALL)
data = x[0]
json.loads(data)
or
json.loads(str(data))
两者都返回错误
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.