Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:切片索引必须是整数或无,或具有_____;方法-Google Sheets API_Python_Json_Python 3.x_Google Sheets Api - Fatal编程技术网

Python TypeError:切片索引必须是整数或无,或具有_____;方法-Google Sheets API

Python TypeError:切片索引必须是整数或无,或具有_____;方法-Google Sheets API,python,json,python-3.x,google-sheets-api,Python,Json,Python 3.x,Google Sheets Api,我正在编写一个脚本,将一个列表上传到Google Sheets中,并附加到已经创建的工作表中。我已经运行了GoogleSheetsAPI文档中的示例代码。我的大部分代码对我来说都是有意义的(见下文),但我还没有使用JSON文件格式,我认为我格式化要追加的行的方式是触发错误的原因: TypeError:切片索引必须是整数或None或具有\uuuuuu索引\uuuu方法 这是试图从列表传递到Google工作表的内容: ['2018-09-24', '6.16% to 35.89%', '6.99%

我正在编写一个脚本,将一个列表上传到Google Sheets中,并附加到已经创建的工作表中。我已经运行了GoogleSheetsAPI文档中的示例代码。我的大部分代码对我来说都是有意义的(见下文),但我还没有使用JSON文件格式,我认为我格式化要追加的行的方式是触发错误的原因:

TypeError:切片索引必须是整数或
None
或具有
\uuuuuu索引\uuuu
方法

这是试图从列表传递到Google工作表的内容:

['2018-09-24', '6.16% to 35.89%', '6.99% to 24.99%', '6.99% to 24.99%']
以下代码执行以下操作:

  • 刮掉几个地方
  • 将信息存储在数据框中
  • 将该数据帧转换为列表
  • 通过GoogleSheetsAPI传递该列表并将其附加到工作表中。(这里是导致错误最多的地方,因为这里正在读取列表并试图将其传递到Google工作表中。
  • 代码:


    这是几件错误的事情的组合。绝对是一次宝贵的学习经历

    这三行代码更新了JSON负载,以便Google Sheets API可以读取它:

    u1 = ",".join(item for item in s1)
    value = u1.strip().split(",")
    value.insert(0,sdate)
    
    我基本上是从上面取s1,把它变成一个逗号分隔的列表,并插入我想要发送到电子表格的日期

    然后,我必须通过运行Google Sheets API文档中的quickstart.py示例来删除并重新验证token.json文件。然后我必须更新下面请求主体的变量,并使其工作:

    range_ = "A1:D1"
    value_input_option = 'RAW'
    insert_data_option = 'INSERT_ROWS'
    value_range_body = {
         "majorDimension": "ROWS",
         "values": [value],
    }
    request = service.spreadsheets().values().append(spreadsheetId=spreadsheet_id,
                                                     range=range_,
                                                     valueInputOption=value_input_option,
                                                     insertDataOption=insert_data_option,
                                                     body=value_range_body)
    

    我在这里的主要障碍是理解JSON格式,Sheets API有点混乱。希望这篇文章也能帮助其他人澄清一些困惑。

    提供更新请求中各种组件的示例。另外,突出显示发出错误的行。
    range_ = "A1:D1"
    value_input_option = 'RAW'
    insert_data_option = 'INSERT_ROWS'
    value_range_body = {
         "majorDimension": "ROWS",
         "values": [value],
    }
    request = service.spreadsheets().values().append(spreadsheetId=spreadsheet_id,
                                                     range=range_,
                                                     valueInputOption=value_input_option,
                                                     insertDataOption=insert_data_option,
                                                     body=value_range_body)