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

从TXT文件写入Google Sheets时出现‘Invalid value at 'data.values'’错误

问题分析与解决方案

问题根源

从.txt文件读取的内容是字符串类型,但Google Sheets API的values字段要求传入的是嵌套列表(二维数组)。手动赋值的values = [['65574','7657565','76576575','543533','543244634']]是符合API要求的列表结构,而直接读取文件得到的values只是一串文本格式的字符串,API无法识别,因此抛出Invalid value at 'data.values'错误。

解决方案

需要将读取到的字符串解析为Python原生的嵌套列表,以下是两种可靠的实现方式:

方法1:使用ast.literal_eval()(推荐)

ast.literal_eval()可以安全地将字符串形式的Python字面量转换为真实对象,完全适配你的文件格式:

import ast

with open('numbers_list.txt') as f:
    data = f.read().strip()  # 去除首尾空白字符,避免解析异常
values = ast.literal_eval(data)

sheets_data = {'values': values}

update_sheet = sheets_service.spreadsheets().values().append(
    spreadsheetId=spreadsheet_id,
    body=sheets_data,
    range=range_place,
    valueInputOption='USER_ENTERED'
).execute()

方法2:使用json.loads()

如果文件内容可以调整为标准JSON格式(将单引号替换为双引号),也可以用JSON解析:

import json

with open('numbers_list.txt') as f:
    data = f.read().strip()
    data = data.replace("'", "\"")  # 将单引号替换为双引号,符合JSON语法
values = json.loads(data)

sheets_data = {'values': values}

update_sheet = sheets_service.spreadsheets().values().append(
    spreadsheetId=spreadsheet_id,
    body=sheets_data,
    range=range_place,
    valueInputOption='USER_ENTERED'
).execute()

注意事项

  • 若文件内容存在多余换行、空格或注释,需提前清理,避免解析失败
  • ast.literal_eval()无需修改原文件格式,比json.loads()更适配当前场景,优先选用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:01:12