如何使用PyDrive获取Google Spreadsheet结果并转为JSON格式
报错原因
该报错和PyDrive无关,核心是Python原生JSON序列化工具无法直接处理pandas DataFrame类型的对象,将已获取的DataFrame转换为标准JSON格式即可解决。
解决方法
直接使用pandas自带的to_json()方法完成转换,可根据需求调整输出格式:
import pandas as pd import json # 此处为你通过PyDrive读取表格数据生成DataFrame的原有逻辑,生成变量名为df的DataFrame # 1. 转换为JSON字符串 # orient参数控制输出格式,force_ascii=False保留中文等非ASCII字符不转义 json_str = df.to_json(orient='records', force_ascii=False) # 2. 若需要输出为本地JSON文件 with open('google_sheet_result.json', 'w', encoding='utf-8') as f: f.write(json_str) # 3. 若需要转为Python原生列表/字典做后续处理 json_data = json.loads(json_str)
常用格式参数说明
orient参数可按需调整,常用选项如下:
orient='records':输出为[{"列名1":"行1值1","列名2":"行1值2"},{"列名1":"行2值1",...}]格式,是接口返回、数据导出最常用的格式orient='index':以行索引为key,输出为{"行1索引":{"列名1":"值1",...},...}格式orient='columns':以列名为key,输出为{"列名1":{"行1索引":"值1",...},...}格式orient='split':输出为{"columns":[列名列表],"index":[行索引列表],"data":[二维数据列表]}格式,适合需要单独提取表头、原始数据的场景
注意事项
如果DataFrame中包含时间类型字段,可添加date_format参数避免序列化异常,示例:
json_str = df.to_json(orient='records', force_ascii=False, date_format='iso')
内容的提问来源于stack exchange,提问作者Jore Dawal
相关产品推荐
相关产品推荐

