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

Python字典嵌套循环提取DataFrame数据时遇可迭代对象问题求助

问题解决方案

核心错误点

  • 循环语法错误:Python遍历字典items()必须用in,原代码里的from是语法错误。
  • 字典键值误用:你的字典MappingDataWebservice键是DataFrame的名称字符串(比如'Season'),不是实际的DataFrame对象。字符串没有index属性,所以第二个循环自然会报错。

修正后的代码方案

方案一:通过全局变量映射获取DataFrame

如果你的Season、Division是全局变量,可以用globals()把字符串名称转换成实际的DataFrame对象:

MappingDataWebservice = {'Season': '/api/DATA/SEASON', 'Division': '/api/DATA/DIVISION', 'Group': '/api/DATA/GROUP'}

# 遍历字典的DataFrame名称和对应URL
for df_name, url_ws in MappingDataWebservice.items():
    # 从全局变量中取出实际的DataFrame
    df = globals()[df_name]
    # 遍历DataFrame的索引
    for idx in df.index:
        print(df.iloc[idx][0])
        # 这里可以添加发送JSON到接口的逻辑,比如:
        # row_json = df.iloc[idx].to_json()
        # requests.post(url_ws, json=row_json)

方案二:直接用DataFrame作为字典的键(更推荐)

如果可以调整字典结构,直接把DataFrame对象作为键,避免字符串映射的麻烦:

# 假设Season、Division、Group是已经定义好的DataFrame
MappingDataWebservice = {Season: '/api/DATA/SEASON', Division: '/api/DATA/DIVISION', Group: '/api/DATA/GROUP'}

# 遍历字典中的DataFrame和对应URL
for df, url_ws in MappingDataWebservice.items():
    for idx in df.index:
        print(df.iloc[idx][0])
        # 发送JSON的逻辑示例
        # row_json = df.iloc[idx].to_json()
        # requests.post(url_ws, json=row_json)

更简洁的遍历方式

如果不需要用到索引值,可以直接用iterrows()遍历每一行:

for df_name, url_ws in MappingDataWebservice.items():
    df = globals()[df_name]
    # 直接遍历行,_是占位符代表索引(不用的话可以忽略)
    for _, row in df.iterrows():
        print(row[0])
        # row_json = row.to_json()
        # requests.post(url_ws, json=row_json)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:06:15