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

将DataFrames列表按symbol列值命名保存JSON文件时遇语法错误

问题排查与解决方案

咱们来一步步拆解你代码里的问题,然后给出可行的修正方案:

1. 核心错误点分析

语法结构混乱

你的代码尝试用列表推导式,但括号嵌套、字符串拼接的逻辑完全出错了——temp[i][[temp[i]['symbol']] + '.txt') 这里的中括号、小括号不匹配,还错误地把DataFrame的列索引和字符串直接相加,这是触发语法报错的直接原因。

遍历逻辑错误

temp 是DataFrames的列表,不是单个DataFrame,所以你不能调用 temp.symbol.unique()——列表根本没有symbol这个属性,这也是逻辑上的致命问题。

文件名取值错误

你想取每个DataFrame的symbol列值作为文件名,但temp[i][[temp[i]['symbol']]]这种写法是在错误地尝试取一个列,而你需要的是这个列的具体字符串值(假设每个DataFrame的symbol列值唯一,毕竟要作为单个文件名)。


修正后的代码

# 遍历列表中的每个DataFrame
for df in temp:
    # 获取当前DataFrame的symbol值(假设每个df的symbol列值唯一)
    symbol = df['symbol'].iloc[0]
    # 构造文件名,用.json后缀更符合JSON文件的规范,要.txt可以自行修改
    filename = f"{symbol}.json"
    # 保存为JSON文件
    df.to_json(filename)

补充说明

  • 如果你的DataFrame里symbol列存在多个不同值,那你需要先按symbol分组再保存,但从你的需求描述来看,每个DataFrame对应一个唯一的symbol,上面的代码完全适用。
  • 如果你非要用列表推导式(虽然循环写法更易读),正确的写法是:
[df.to_json(f"{df['symbol'].iloc[0]}.json") for df in temp]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:28:07