You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Roblox市场商品接口返回的JSON数据中提取销量数值

实现方法

你可以直接使用Python内置的json模块解析接口返回的JSON数据,无需依赖第三方库,既可以直接解析接口拿到的字符串,也可以解析你保存到本地的响应文件,具体实现如下:

方案1:直接解析接口返回的字符串(省去读写文件步骤)

你当前代码中已经通过driver.find_element拿到了完整的JSON字符串,直接解析即可:

  1. 首先在代码头部引入json模块
import json
  1. 修改submitData函数逻辑:
def submitData(self):
        self.title.setText("Roblox Sales Checker")
        try:
            ID = self.ID_INPUT.text()
            url = f'https://api.roblox.com/Marketplace/ProductInfo?assetId={ID}'

            driver.get(url)
            driver.add_cookie("My Auth Cookie,but not for you :)")
            driver.refresh()

            # 获取JSON格式的响应字符串
            json_str = driver.find_element_by_css_selector("body > pre").text
            # 转为Python字典
            res_data = json.loads(json_str)
            # 直接提取销量字段
            sales_num = res_data["Sales"]
            print(f"商品销量:{sales_num}")

            # 可选:保留原来存文件的逻辑,用with更安全无需手动关文件
            with open('apiResponse.txt', 'w', encoding='utf-8') as f:
                f.write(json_str)

        except Exception as e:
            print(f"处理出错:{str(e)}")

方案2:从已保存的本地响应文件中提取

如果你需要单独从已经生成的apiResponse.txt里读取销量,代码如下:

import json

with open('apiResponse.txt', 'r', encoding='utf-8') as f:
    res_data = json.load(f)
sales_num = res_data["Sales"]
print(sales_num)

注意事项

  • 解析后的res_data是标准Python字典,你可以按照同样的方法提取返回值里的其他字段,比如商品名称、更新时间等
  • 建议增加字段存在性判断,避免接口结构变化导致报错:
    sales_num = res_data.get("Sales", 0) # 如果字段不存在默认返回0
    
  • 使用with语句操作文件会自动完成关闭逻辑,比手动调用open/close更安全,不会出现文件句柄泄漏问题

内容的提问来源于stack exchange,提问作者Fabian Hasieber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 21:36:11