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

Python读取CSV提交JSON时,序列号被包裹为列表的问题求助

Python读取CSV提交JSON时,序列号被包裹为列表的问题求助

嘿,我来帮你搞定这个问题!

你猜的没错,那些方括号确实说明row是个列表,问题根源在csv.reader的行为上——它会把CSV的每一行都解析成一个列表,哪怕这一行只有一个值。比如你CSV里的serial1,csv.reader读出来的不是字符串"serial1",而是单元素列表["serial1"],所以你把row直接塞进{"sn": row}里,自然就变成了{"sn": ["serial1"]}这种格式啦。

给你几个简单的解决办法,随便选一个都能搞定:

方法1:直接取列表的第一个元素

在构造请求JSON的时候,把row改成row[0],直接拿到列表里的字符串:

data = {"sn": row[0]}  # 把原来的row换成row[0]

这样提交的就是纯字符串序列号了,完全符合接口要求的格式。

方法2:读取CSV时就处理成字符串列表

如果不想在请求的时候再处理,也可以在读取CSV的环节就把列表转成字符串:

with open('serials.csv', mode='r') as infile:
    reader = csv.reader(infile)
    # 遍历每一行,取第一个元素存成字符串列表
    serials = [row[0] for row in reader]

这样后面循环的时候,row本身就是纯字符串,直接data = {"sn": row}就没问题。

额外小技巧:更简单的读取方式

因为你的CSV每行只有一个值,其实不用csv.reader也行,直接用普通文件读取更省事:

with open('serials.csv', mode='r') as infile:
    # 读取所有行,自动去掉换行符和前后空白,还能跳过空行
    serials = [line.strip() for line in infile if line.strip()]

这种方式读出来的直接就是干净的字符串列表,完全不会有嵌套列表的烦恼~

你试试上面的方法,应该就能顺利提交正确格式的JSON啦!

备注:内容来源于stack exchange,提问作者Nathan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 17:50:25