google-api - Google Sheets API 将单个 qoute 添加到文本
问题描述
嗨,我正在运行 Google APi 脚本以将数据输入到工作表中,但对于某些文本(数字、日期、布尔值),它会在例如 05/01/2021 = '05/01/2021 之前添加一个'
我正在使用批量更新:
def turn_into_range(data, SheetId, row,cols):
rows = [{'values': [{'userEnteredValue': {'stringValue': f}} for f in e]} for e in data]
rng = {'sheetId': SheetId, 'startRowIndex': 0, 'startColumnIndex': 0}
fields = 'userEnteredValue'
body = {'requests': [{'updateCells': {'rows': rows, 'range': rng, 'fields': fields}},{
"updateSheetProperties": {
"properties": {
"gridProperties": {
"rowCount": row + 1,
"columnCount": cols
},
"sheetId": SheetId
},
"fields": "gridProperties"
},
}
]}
clean_dict = simplejson.loads(simplejson.dumps(body, ignore_nan=True))
return clean_dict
def post_sheet(service_sheets, spreadsheet_id, body):
request = service_sheets.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=body)
response = request.execute()
return response
有任何想法吗?
解决方案
对于这个问题,这是因为您的数据在stringValue
.
您需要为不同的数据类型使用其他类型的值,
stringValue
:
- "A String", # 表示一个字符串值。
- 不包括前导单引号。例如,如果用户
'123
在 UI 中键入,这将表示为stringValue
of"123"
。
boolValue
:
- True or False, # 表示一个布尔值。
numberValue
:
- 3.14, # 表示双精度值。
- 注意:日期、时间和日期时间以“序列号”格式表示为双精度数。
formulaValue
:
- "A String", # 表示一个公式。
errorValue
:
- 单元格中的错误。表示错误。
- 该字段是只读的。
尝试在您的代码中添加它。
from dateutil.parser import parse
def checkData(data):
if (isinstance(data, bool)):
return 'boolValue'
try:
if (isinstance(data, (int, float)) or parse(data)):
return 'numberValue'
except ValueError:
return 'stringValue'
行为:
现在,在您的代码中使用它:
rows = [{'values': [{'userEnteredValue': {checkData(f): f}} for f in e]} for e in data]
有关更多详细信息,可以在此处找到文档
推荐阅读
- python - 查找具有指定 ID 正则表达式的 xpath
- javascript - 在 Zeppelin 中将数组从 JS 传递并处理到 Spark
- tcp - WSL2 Ubuntu 18.04 LTS 上的 .NET Core 应用程序无法与 Windows Docker 中运行的 RabbitMQ 通信
- c# - 实体框架核心 - 无法添加子记录
- javascript - 如何在没有 Web Audio API 的情况下直接从 ArrayBuffer 获取通道数据?
- c++ - 无法显示初始化的字符数组,给出段错误
- php - 如何通过其子数组的键之一对 PHP 多维数组进行排序
- django - Django 模型中 PostgreSql JSONField 中的语法错误
- crystal-reports - Crystal Reports 13 组重复项
- android - 如何从 APK 中提取 Android 版本 3 签名证书