Запись файла Json, ячейка за ячейкой в ​​электронную таблицу Google - PullRequest
1 голос
/ 08 апреля 2020

Я нахожусь в процессе автоматизации процесса, в котором мне нужно загрузить некоторые данные в электронную таблицу Google. Данные изначально находятся в pandas фрейме данных, который преобразуется в файл JSON для загрузки.

Я получаю загрузку, но я получаю все данные в каждую ячейку, так что ячейка A1 содержит все данные из всего Pandas кадра данных, фактически каждая ячейка в электронной таблице содержит все данные: /

How it looks right now

Конечно, я хочу, чтобы в ячейке данных было указано, что такое ячейка A1, как A1 в электронной таблице Google и т. Д. далее в камеру J173.

Я думаю, мне нужно добавить l oop, чтобы это произошло, но я не уверен, как работают файлы JSON, поэтому мне не удается создать этот l oop .

Надеюсь, один из вас может помочь

Ниже приведен код

#Converting data to a json file for upload
csv_data = csv_data.to_json()


#Updating data
cell_list = sheet.range('A1:J173')

for cell in cell_list:
    cell.value = csv_data

sheet.update_cells(cell_list)

Windows 10 Python 3.8

1 Ответ

0 голосов
/ 09 апреля 2020
  • Вы хотите поместить данные фрейма в таблицу Google.
    • В вашем скрипте csv_data из csv_data.to_json() - это фрейм данных.
  • Вы хотите добиться этого, используя gspread с python.
    • Из вашего сценария я понял это следующим образом.
  • Вы уже смогли получить и поместить значения для Google Spreadsheet с помощью API Sheets.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом, как об одном из нескольких возможных ответов.

Шаблон 1:

В этом шаблоне используется метод values_update gspread.

Пример сценария :

spreadsheetId = "###"  # Please set the Spreadsheet ID.
sheetName = "Sheet1"  # Please set the sheet name.
csv_data =  # <--- please set the dataframe.

client = gspread.authorize(credentials)
values = [csv_data.columns.values.tolist()]
values.extend(csv_data.values.tolist())
spreadsheet.values_update(sheetName, params={'valueInputOption': 'USER_ENTERED'}, body={'values': values})

Шаблон 2:

В этом шаблоне используется библиотека gspread-dataframe .

Пример сценария:

from gspread_dataframe import set_with_dataframe # Please add this.

spreadsheetId = "###"  # Please set the Spreadsheet ID.
sheetName = "Sheet1"  # Please set the sheet name.
csv_data =  # <--- please set the dataframe.

client = gspread.authorize(credentials)
spreadsheet = client.open_by_key(spreadsheetId)
worksheet = spreadsheet.worksheet(sheetName)
set_with_dataframe(worksheet, csv_data)

Ссылки:

If I неправильно понял ваш вопрос, и это было не то направление, которое вы хотите, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...