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

从DataFrame取日期循环生成URL,转JSON为DataFrame遇属性错误

问题分析与解决方案

你遇到的AttributeError: 'str' object has no attribute 'json'错误,核心原因很明确:你试图对一个字符串(也就是你生成的URL)调用.json()方法,但只有requests库返回的Response对象才有这个方法。

咱们拆解一下问题:

  • 第一段代码里你成功生成了目标URL字符串,但第二段代码里,你大概率是直接拿着这个URL字符串去调用.json(),而没有先通过requests.get()发送请求获取响应对象。

修正步骤

  • 先使用requests.get(url)向目标URL发送请求,获取服务器返回的响应对象;
  • 调用响应对象的.json()方法解析JSON格式的响应内容;
  • 再把解析后的JSON数据转换成DataFrame。

完整修正代码示例

import requests
import pandas as pd

# 替换成你实际使用的URL模板
url_template = "https://your-api-url.com/data?date={row}"

df = pd.read_csv('NBADates.csv')
for row in df.loc[:, "Date"]:
    url = url_template.format(row=row)
    print(f"正在请求目标URL: {url}")
    
    # 关键步骤:发送HTTP请求获取响应对象
    response = requests.get(url)
    
    # 可选:检查请求是否成功,避免无效数据导致后续报错
    response.raise_for_status()
    
    # 解析JSON响应数据
    json_data = response.json()
    
    # 将JSON数据转换为DataFrame
    result_df = pd.DataFrame(json_data)
    
    # 这里可以添加后续处理逻辑,比如保存数据、分析数据等
    print(f"当前日期数据处理完成,共{len(result_df)}条记录")

额外提示

  • 务必把url_template替换成你实际业务中使用的URL模板;
  • response.raise_for_status()会在请求失败(比如404、500错误)时直接抛出异常,能帮你快速定位请求层面的问题;
  • 如果返回的JSON是嵌套结构,直接转DataFrame可能不符合预期,你需要先对json_data做扁平化处理后再转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:36:47