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

Python中pandas读取的CSV数据与API返回JSON数据对比失败怎么解决

问题核心原因

你遇到的打印值一致但相等判断返回False的问题,90%以上的概率是两个字段的数据类型不匹配:

  • API返回的partNumber大概率是字符串类型(JSON解析时如果字段值带引号就会被解析为字符串)
  • pandas读取CSV时默认会把纯数字的列解析为整数/浮点数类型
    比如"1001" == 1001的判断结果就是False,打印的时候不会显示类型差异,所以你看不出区别。

除此之外还有两种少见的可能:

  • 其中一个值前后带有不可见空白字符(空格、换行符、制表符等),打印时不会显示
  • 某一侧的数值存在精度问题(比如浮点型的1001.0和整数1001对比也会返回False,你这个场景出现概率较低)
排查步骤

你可以先修改对比代码,打印两个值的类型确认问题:

for product in getProducts():
    for i in df.index:
        pn = product['partNumber']
        an = df['Artikelnummer'][i]
        print(f"partNumber:{pn},类型:{type(pn)}")
        print(f"Artikelnummer:{an},类型:{type(an)}")
        print(f"对比结果:{pn == an}\n")
修复方案

确认是类型不一致的话,统一转换为同一种类型再对比即可,推荐统一转字符串,避免数字精度问题:

for product in getProducts():
    for i in df.index:
        if str(product['partNumber']).strip() == str(df['Artikelnummer'][i]).strip():
            print('True')
        else:
            print('False')

代码里加了strip()方法,可以同时解决首尾空白字符的问题。

额外优化建议

你现在用的双层循环逻辑在数据量超过100条之后效率会非常低,建议提前把CSV的编号映射为字典,或者直接用pandas的merge功能做批量匹配,性能会提升几十倍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:45:02