Google api Google Sheets API向文本添加单个qoute

Google api Google Sheets API向文本添加单个qoute,google-api,google-sheets-api,Google Api,Google Sheets Api,您好,我正在运行一个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 = {

您好,我正在运行一个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

  • “字符串”表示字符串值
  • 不包括前导单引号。例如,如果用户在UI中键入
    '123
    ,这将表示为
    “123”
    stringValue
布尔值

  • True或False,#表示布尔值
numberValue

  • 3.14,#表示双值
  • 注:日期、时间和日期时间以“序列号”格式表示为双精度
公式值

  • “字符串”表示一个公式
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}}用于e中的f]}用于e中的e]


有关更多详细信息,请参阅文档

谢谢我了解有没有办法从熊猫数据框定义类型?嗨@davidraper,我在上面的回答中添加了一个代码,你能检查一下吗?非常感谢,太完美了!您好@davidraper,如果您的问题已解决,请按“接受并向上投票”按钮。与你有相同问题的其他人也可以将你的问题作为可以解决的问题。如果你找不到按钮,尽管告诉我。stackoverflow.com/help/accepted-answer