Gsheets вставка Python диктонары с помощью Batchupdate - PullRequest
0 голосов
/ 06 декабря 2018

Я новичок в gheets и ищу способ вставить данные, которые я скопировал, в gheets, которые в настоящее время находятся в словаре Python.Я хотел бы сделать это в пакетном процессе, чтобы мой паук мог обновлять несколько полей одновременно.

{'page_url': 'https://www.websiteurl.com', 'company': 'my company', 'location': 'The Netherlands',
                  'price_excl_vat': '30000'}

Я пытался создать запрос json, но получаю TypeError: unhashable type: 'dict'.Я знаю это, потому что поле данных принимает строку, но думал, что смог бы взять словарь и, похоже, не может найти, как это сделать.Занимался этим весь день и просто не могу понять, что я делаю не так.

batch_update_spreadsheet_request_body =  {

    {
     "requests": [
      {
       "insertRange": {
        "range": {
         "sheetId": '12345tutu',

        },
       }
      },
      {
       "pasteData": {
        "data":  {'page_url': 'https://www.websiteurl.com', 'company': 'my company', 'location': 'The Netherlands',
                  'price_excl_vat': '30000'},

       }
      }
     ]
    }

}

request = service.spreadsheets().batchUpdate(spreadsheetId=spreadsheet_id, body=batch_update_spreadsheet_request_body)
response = request.execute()

1 Ответ

0 голосов
/ 06 декабря 2018

Вы должны удалить пару {}:

batch_update_spreadsheet_request_body = {
     "requests": [
      {
       "insertRange": {
        "range": {
         "sheetId": '12345tutu',

        },
       }
      },
      {
       "pasteData": {
        "data":  {'page_url': 'https://www.websiteurl.com', 'company': 'my company', 'location': 'The Netherlands',
                  'price_excl_vat': '30000'},

       }
      }
     ]
    }

. Он создает набор, содержащий словарь, и это невозможно, потому что, как говорит ошибка, элементы множеств должны быть хэшируемыми, идиктат - нет.

...