【问题标题】:TypeError: { } is not JSON serializableTypeError: { } 不是 JSON 可序列化的
【发布时间】:2018-09-11 07:15:40
【问题描述】:

我正在尝试将 python dict 字符串写入(附加)到 Google 表格

下面是我的代码

SCOPES = 'https://www.googleapis.com/auth/spreadsheets.readonly'
SPREADSHEET_ID = 'XXX'
RANGE_NAME = 'Sheet1!A2:F2'
now = time.strftime('%d-%m-%Y %H:%M')


def main():

    store = file.Storage('token.json')
    creds = store.get()
    if not creds or creds.invalid:
        flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
        creds = tools.run_flow(flow, store)
    service = build('sheets', 'v4', http=creds.authorize(Http()))


    request = service.spreadsheets().values().append(spreadsheetId= SPREADSHEET_ID,
                                                 range= RANGE_NAME,
                                                 valueInputOption='USER_ENTERED',
                                                 insertDataOption='INSERT_ROWS',
                                                 body= {now, data2['pagespeed_score'], data2['yslow_score'], Loadedtime, pagesize, data2['page_elements'],})
    response = request.execute()

    print(response)

if __name__ == '__main__':
    main()

但我收到一个错误:

"TypeError: {2.1982345581054688, '11-09-2018 13:08', 8.836, 109, 52, 55} is not JSON serializable"

我认为值应该是 json 格式,但我的值在 python 字典中。

【问题讨论】:

标签: python json google-sheets-api


【解决方案1】:

这里:

 body= {now, data2['pagespeed_score'], data2['yslow_score'], Loadedtime, pagesize, data2['page_elements'],}

您正在传递一个set,它在 JSON 中没有任何等效项。您必须检查预期类型的​​ google sheet API 文档(实际上可能是 dict)。

【讨论】:

    【解决方案2】:

    通过更改代码解决它,将值集更改为dict

    values = [now, pagespeed, yslow, Loadedtime, pagesize, element]
    body = {'values': [values]} 
    
    
    result = service.spreadsheets().values().append(
        spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME,
        valueInputOption= 'USER_ENTERED', body=body).execute()
    

    【讨论】:

      猜你喜欢
      • 2017-10-24
      • 2016-08-02
      • 2019-02-08
      • 2013-05-11
      • 2014-08-13
      • 2019-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多