使用gspread向Google Sheets追加数据时自动添加单引号问题求助
解决Google Sheets追加数据自动加单引号的问题
你遇到的单引号问题,是因为RAW模式会原样写入数据,而DataFrame转成list后,数值可能还是numpy的数值类型(比如numpy.int64),Google Sheets会把这类非原生Python数值识别成文本,自动加单引号标记。
给你两个可行的解决方法:
方法一:转换为Python原生数值类型
在转成list前,把DataFrame的数值列转成Python原生的int/float:import numpy as np try: # 把DataFrame里的numpy数值转成Python原生类型 merge_values = merge.applymap(lambda x: x.item() if isinstance(x, (np.integer, np.floating)) else x).values.tolist() gs.values_append('Merged', {'valueInputOption': 'RAW'}, {'values': merge_values}) except: print('No new data')或者更简单的方式,直接把整个DataFrame转成object类型:
try: merge_values = merge.astype(object).values.tolist() gs.values_append('Merged', {'valueInputOption': 'RAW'}, {'values': merge_values}) except: print('No new data')方法二:改用USER_ENTERED模式
把valueInputOption改成USER_ENTERED,这个模式会模拟手动输入的解析逻辑,自动识别数值类型,不需要额外转换:try: merge_values = merge.values.tolist() gs.values_append('Merged', {'valueInputOption': 'USER_ENTERED'}, {'values': merge_values}) except: print('No new data')
推荐先试方法二,操作更简单,一般就能直接解决单引号问题。
内容的提问来源于stack exchange,提问作者hyeri
相关产品推荐
相关产品推荐

