使用Pandas写入Google Sheets时出现API错误的问题
解决Google Sheets API写入DataFrame的400错误
错误原因
Google Sheets的API不支持Python的NaN值作为JSON请求体的一部分——JSON标准中不存在NaN类型,导致请求被判定为无效格式,触发400错误。
解决方案
在将DataFrame转换为列表前,把所有NaN替换为空字符串(或自定义占位符,比如"未记录"),确保请求体符合JSON规范。
修改后的完整代码
# 先处理DataFrame中的NaN值,替换为空字符串 df1 = df1.fillna('') # 执行转换和写入操作 df_data = df1.to_numpy().tolist() headers = df1.columns.to_list() dataTowrite = [headers] + df_data datacombine = wb.worksheet("Completion") datacombine.update(None, dataTowrite)
替代方案(自定义占位符)
如果需要用更明确的文本代替空值,比如"未完成",只需修改fillna的参数:
df1 = df1.fillna('未完成')
额外说明
- 若你已导入numpy,也可以用
df1.replace(np.nan, '', inplace=False)实现相同效果 - 处理后的数据不会再包含
NaN,完全符合Google Sheets API的JSON格式要求,即可正常写入。
内容的提问来源于stack exchange,提问作者Emily George
相关产品推荐
相关产品推荐

