python - Google Sheets API 附加额外的撇号

标签 python google-sheets-api

几个月来,我一直在 Python 中使用此 Google Sheets API 代码将数据附加到电子表格,但它最近出现故障。任何人都可以看出这有什么问题吗?

body = {'values': [['2019-9-1', '41']]}
result = service.spreadsheets().values().append(spreadsheetId=SPREADSHEET_ID,valueInputOption='RAW', body=body, range='A:Z').execute()

它创建这样的单元格,在每个单元格值前有一个撇号:

+----+-----------+-----+
|    |     A     |  B  |
+----+-----------+-----+
| 33 | '2019-9-1 | '41 |
+----+-----------+-----+

这是结果:

{'spreadsheetId': 'xxxxxxxxx', 'tableRange': 'data!A1:U32', 'updates': {'spreadsheetId': 'xxxxxxxxxx', 'updatedRange': 'data!A33:B33', 'updatedRows': 1, 'updatedColumns': 2, 'updatedCells': 2}}

最佳答案

  • 您想将 2019-9-141 的值分别作为日期对象和数字放入电子表格。
    • 在当前情况下,结果变成类似'2019-9-1'41
  • 您想使用 google-api-python-client 和 Python 来实现它。

如果我的理解是正确的,这个修改怎么样?

问题:

我认为您的问题的原因是 valueInputOption='RAW'。当RAW设置为valueInputOption时,官方文档是这样说的。

The values the user has entered will not be parsed and will be stored as-is.

这样,2019-9-141就被置为字符串类型。所以 ' 被添加到字符的顶部。

解决方案:

为了将2019-9-141的值作为日期对象和数字,请修改如下。

从:
result = service.spreadsheets().values().append(spreadsheetId=SPREADSHEET_ID,valueInputOption='RAW', body=body, range='A:Z').execute()
到:
result = service.spreadsheets().values().append(spreadsheetId=SPREADSHEET_ID,valueInputOption='USER_ENTERED', body=body, range='A:Z').execute()
  • USER_ENTERED设置为valueInputOption时,官方文档是这样说的。

    The values will be parsed as if the user typed them into the UI. Numbers will stay as numbers, but strings may be converted to numbers, dates, etc. following the same rules that are applied when entering text into a cell via the Google Sheets UI.

引用资料:

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

关于python - Google Sheets API 附加额外的撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58173687/

相关文章:

python - 阻止 gif 图像在 matplotlib 中重复

Python:最有效的递归输出方法是什么?

c# - 在不知道其范围的情况下阅读电子表格

javascript - 如何从 Google 表格访问单元格值?

java - 在谷歌表格中设置自定义列宽大小

python - Pandas 数据框合并两列以获取日期时间列

Python + Theano : Logistic regression weights do not update

python - 使用python的pandas处理aws dynamodb数据

node.js - Typescript 和 Googleapis 使用的内存激增

javascript - 多次调用 google 表格时,API 身份验证不适用于第二次调用 : Request had insufficient authentication scopes