我正在尝试从 API 解析 JSON,但我不断收到使 JSON 无效的奇怪字符

问题描述 投票:0回答:1

我的代码是:

import requests
import json

url = "https://547os1.a.searchspring.io/api/search/search.json?ajaxCatalog=v3&resultsFormat=native&siteId=547os1&domain=https%3A%2F%2Fwww.golfbox.com.au%2Fsearch%3Fq%3DCalaway%2BParadym%2BDriver%26Search%3DSEARCH&q=Calaway%20Paradym%20Driver"

response = requests.get(url, headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"}, verify=False)

print(json.loads(response.content))

我得到了奇怪的响应数据,例如:

\/attribute_rule_images\/805553_source_1704882887.jpg","cost_price":556.75,"upc":"194518846035","mpn":"4H671241I200","inventory_level":1},{"option_value_id":197674,"value" :"12 Degree","option_id":42044,"option":"阁楼","id":585853,"product_id":41585,"child_sku":"DVR-PARADYM-GRH-12D-R-HZRD SIL 50 ","价格":799.99,"计算价格":799.99,"零售价格":1069.99,"宽度":15,"高度":15,"深度":125,"purchasing_disabled":false,"image_url":"https :\/\/cdn11.bigcommerce.com\/s-hiuea1t2mw\/product_images\/attribute_rule_images\/805553_source_1704882887.jpg","cost_price":556.75,"upc":"194518846035","mpn":"4H671241I200", "inventory_level":1},{"option_value_id":197676,"value":"常规 Flex","option_id":42045,"option":"Flex","id":585853,"product_id":41585," child_sku":"DVR-PARADYM-GRH-12D-R-HZRD SIL 50","价格":799.99,"计算价格":799.99,"零售价格":1069.99,"宽度":15,"高度":15,"深度":125,"purchasing_disabled":false,"image_url":"https:\/\/cdn11.bigcommerce.com\/s-hiuea1t2mw\/product_images\/attribute_rule_images\/805553_source_1704882887.jpg","cost_price":556.75 ,"upc":"194518846035","mpn":"4H671241I200","inventory_level":1},{"option_value_id":197680,"value":"项目 X HZRDUS 银 50","option_id":42046,"选项":"轴","id":585853,"product_id":41585,"child_sku":"DVR-PARADYM-GRH-12D-R-HZRD SIL 50","价格":799.99,"calculated_price":799.99 ,"retail_price":1069.99,"width":15,"height":15,"深度":125,"purchasing_disabled":false,"image_url":"https:\/\/cdn11.bigcommerce.com\/s -hiuea1t2mw\/product_images\/attribute_rule_images\/805553_source_1704882887.jpg","cost_price":556.75,"upc":"194518846035","mpn":"4H671241I200","inventory_level":1},{"option_value_id":19 7672 ,"value":"男士右","option_id":42043,"option":"手","id":585859,"product_id":41585,"child_sku":"DVR-PARADYM-GRH-9D-S -HZRD SIL 60","价格":799.99,"计算价格":799.99,"零售价格":1069.99,"宽度":15,"高度":15,"深度":125,"purchasing_disabled":false,"image_url ":"https:\/\/cdn11.bigcommerce.com\/s-hiuea1t2mw\/product_images\/attribute_rule_images\/805559_source_1704882887.jpg","cost_price":556.75,"upc":"194518846097","mpn": "4H679041J300","inventory_level":4},{"option_value_id":197675,"value":"9 度","option_id":42044,"option":"阁楼","id":585859,"product_id" :41585,“child_sku”:“DVR-PARADYM-GRH-9D-S-HZRD SIL 60”,“价格”:799.99,“计算价格”:799.99,“零售价格”:1069.99,“宽度”:15,“高度” :15,"深度":125,"purchasing_disabled":false,"image_url":"https:\/\/cdn11.bigcommerce.com\/s-hiuea1t2mw\/product_images\/attribute_rule_images\/805559_source_1704882887.jpg"," cost_price":556.75,"upc":"194518846097","mpn":"4H679041J300","inventory_level":4},{"option_value_id":197677,"value":"刚性柔性","option_id":42045, “选项”:“Flex”,“id”:585859,“product_id”:41585,“child_sku”:“DVR-PARADYM-GRH-9D-S-HZRD SIL 60”,“价格”:799.99,“计算价格”: 799.99,"零售价格":1069.99,"宽度":15,"高度":15,"深度":125,"purchasing_disabled":false,"image_url":"https:\/\/cdn11.bigcommerce.com\/ s-hiuea1t2mw \/product_images \/attribute_rule_images \ /80559_Source_17048882887.jpg“,“ cost_price”:556.75,“ upc”: {“ option_value_id”: 197683,"value":"Project X HZRDUS Silver 60","option_id":42046,"option":"轴","id":585859,"product_id":41585,"child_sku":"DVR-PARADYM-GRH -9D-S-HZRD SIL 60","价格":799.99,"计算价格":799.99,"零售价格":1069.99,"宽度":15,"高度":15,"深度":125,"purchasing_disabled": false,"image_url":"https:\/\/cdn11.bigcommerce.com\/s-hiuea1t2mw\/product_images\/attribute_rule_images\/805559_source_1

我尝试过使用

response.content
.text
.json()

python json parsing
1个回答
0
投票

我假设您想解析 Json 中的“child_sku_options”值 - 您可以使用

html.unescape()
来解析,然后再次使用
json.loads()

import json
from html import unescape

import requests

url = "https://547os1.a.searchspring.io/api/search/search.json?ajaxCatalog=v3&resultsFormat=native&siteId=547os1&domain=https%3A%2F%2Fwww.golfbox.com.au%2Fsearch%3Fq%3DCalaway%2BParadym%2BDriver%26Search%3DSEARCH&q=Calaway%20Paradym%20Driver"

response = requests.get(
    url,
    headers={
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"
    },
    verify=False,
)

data = json.loads(response.content)

# print(json.dumps(data, indent=4))

for r in data["results"]:
    options = json.loads(unescape(r["child_sku_options"]))
    print(options)

打印:


...
[
    {
        "option_value_id": 218677,
        "value": "Ladies Right",
        "option_id": 46790,
        "option": "Hand",
        "id": 617491,
        "product_id": 45847,
        "child_sku": "DVR-AI SMOKE MAX F W-LRH-12D-L",
        "price": 1069.99,
        "calculated_price": 1069.99,
        "retail_price": 0,
        "width": 15,
        "height": 15,
        "depth": 125,
        "purchasing_disabled": False,
        "image_url": "https://cdn11.bigcommerce.com/s-hiuea1t2mw/product_images/attribute_rule_images/833327_source_1707118667.jpg",
        "cost_price": 502.17,
        "upc": "197193258254",
        "mpn": "4J261255S101",
        "inventory_level": 4,
    },

...
© www.soinside.com 2019 - 2024. All rights reserved.