Python requests无法解析六合彩API JSON?求可行读取代码
问题分析与解决方案
无法解析的原因
该接口返回的并非标准纯JSON字符串,而是被包裹在JavaScript变量声明语句中(例如格式类似 var data = {...};)。requests 的 .json() 方法仅能解析符合JSON规范的纯字符串,因此直接调用会触发解析错误。你在浏览器中复制的是核心JSON内容,但原始响应包含额外的JavaScript代码前缀/后缀。
可行Python代码
import requests import json # 目标接口URL target_url = "https://bet.hkjc.com/marksix/getJSON.aspx?sd=20230101&ed=20230331&sb=0" # 模拟浏览器请求头,避免被服务器拦截 request_headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" } # 发送GET请求 response = requests.get(target_url, headers=request_headers) # 提取响应中的纯JSON部分 # 定位JSON内容的起始(第一个{)和结束(最后一个})位置 start_pos = response.text.find("{") end_pos = response.text.rfind("}") + 1 raw_json_content = response.text[start_pos:end_pos] # 解析JSON并存入变量 try: marksix_json = json.loads(raw_json_content) print("JSON解析完成,已存入marksix_json变量") # 示例:打印数据结构中的第一个开奖记录 # if marksix_json.get("data"): # print(marksix_json["data"][0]) except json.JSONDecodeError as err: print(f"解析失败:{str(err)}")
内容的提问来源于stack exchange,提问作者jackytsz
相关产品推荐
相关产品推荐

