调用Quickbooks APAgingSummary API转DataFrame报float无len()错误
问题根因
- Quickbooks APAgingSummary API返回的
ColData列存在缺失值,Pandas解析时会将空值默认存储为NaN(属于float类型) - 你现有代码未做空值判断,直接对全量
ColData列执行取长度、转列表等操作,遇到NaN值时就会触发类型错误 - 此前处理AccountListDetail API返回数据时无报错,是因为该接口返回的
ColData列无空值
解决方案
1. 预处理ColData列空值
执行转换操作前,先将ColData列的所有空值替换为空列表,避免float类型的空值触发报错:
import pandas as pd # 空值统一替换为空列表 df['ColData'] = df['ColData'].apply(lambda x: [] if pd.isna(x) else x)
pd.isna()可以同时识别NaN、None等各类空值,覆盖所有空场景。
2. 执行原有转换逻辑
预处理完成后,再执行将ColData列转列表传入DataFrame的操作即可正常运行:
# 原有转换逻辑示例 result_df = pd.DataFrame(df['ColData'].tolist())
可选优化
如果ColData列存在非列表类型的单值(比如字符串、数字),可以进一步统一格式:
df['ColData'] = df['ColData'].apply( lambda x: [] if pd.isna(x) else x if isinstance(x, list) else [x] )
如果需要保留原本为空的行标记,可以新增标识列:
df['ColData_origin_empty'] = df['ColData'].apply(pd.isna)
内容的提问来源于stack exchange,提问作者Tabish Akhtar
相关产品推荐
相关产品推荐

