You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Python向Google Sheets特定单元格写入数据?现有代码求助

test_id写回Google电子表格的解决方案

没问题!要把你获取到的test_id写回目标电子表格的特定单元格,咱们可以用Google Sheets API提供的values().update()方法。我把这段写入逻辑整合到你的现有代码里,具体如下:

修改后的完整代码

RANGE_NAME = 'Latest Records!A2:L'
result = service.spreadsheets().values().get(spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME).execute()
values = result.get('values', [])

# 假设你这里是定位到了目标行(比如row是values列表里的某一行数据)
testurl = (row[1])

import requests
from HomebellAutomation.System.Config import myconfig
testurl= myconfig.URL_webpagetest

r=requests.get( myconfig.URL_webpagetest + "?url=" + testurl + "&f=xml&k=" + myconfig.apikey_webpagetest )
xmltxt=r.content

testId = XML(xmltxt).find("data").find('testId')
print(testId.text)
test_id = testId.text

# ------------------- 写入逻辑开始 -------------------
# 1. 定义要写入的目标单元格范围,比如写到对应行的M列(可根据你的需求修改)
# 如果是固定单元格,直接写'Latest Records!M3'这类格式即可
write_range = f'Latest Records!M{2 + values.index(row)}'  # 自动匹配读取行的对应M列单元格

# 2. 构造符合API要求的数据格式:必须是二维数组(单个值也要嵌套)
write_values = [[test_id]]

# 3. 调用API完成写入操作
update_result = service.spreadsheets().values().update(
    spreadsheetId=SPREADSHEET_ID,
    range=write_range,
    valueInputOption='USER_ENTERED',  # 模拟用户手动输入的格式处理逻辑
    body={'values': write_values}
).execute()

print(f"成功写入 {update_result.get('updatedCells')} 个单元格")
# ------------------- 写入逻辑结束 -------------------

关键细节说明

  • 目标范围调整write_range可以直接指定固定单元格(比如'Latest Records!N5'),也可以像示例中那样自动匹配读取行的对应列,灵活适配你的需求。
  • 数据格式要求:Google Sheets API强制要求写入的数据是二维数组,哪怕只是单个值,也要用[[test_id]]的格式,不能直接传字符串。
  • 格式处理选项valueInputOption设为USER_ENTERED时,API会自动识别数据格式(比如把网址转为可点击链接、数字自动格式化);如果不需要自动格式处理,换成RAW即可。

内容的提问来源于stack exchange,提问作者Bhupendra Singh Rautela

火山引擎 最新活动