@vadimeasy

Как получать «чистое» значение ячейки в Google Sheets?

при чтении данных из ячейки гугл таблицы получаю следующее значение
'values': [['8241279c-4945-4066-977f-15db2943be44']]}
{'majorDimension': 'COLUMNS', 'range': 'guid!B2', 'values': [['102126989']]}

как получать значения ячеек в таком формате 8241279c-4945-4066-977f-15db2943be44 и 102126989
  • Вопрос задан
  • 73 просмотра
Решения вопроса 2
shabelski89
@shabelski89
engineer
Вам нужно просто извлечь значение из JSON. если посмотреть внимательно то перед вами словарь, и нужный элемент получается по ключу.
А то что Вы делаете описано подробно тут
ну и в качестве домашнего задания разберитесь по строчкам кода
response = {'majorDimension': 'COLUMNS', 'range': 'guid!B2', 'values': [['102126989']]}
response.get('values', 'No key values')
[['102126989']]
result = response.get('values', 'No key values')
type(result)
<class 'list'>
result[0]
['102126989']
result[0][0]
'102126989'
values = result[0][0]
values
'102126989'
v = response['values'][0][0]
v
'102126989'
import json
from_google_sheet = '[{"majorDimension": "COLUMNS", "range": "guid!B2", "values": [["1"]]},{"majorDimension": "COLUMNS", "range": "guid!B2", "values": [["2"]]},{"majorDimension": "COLUMNS", "range": "guid!B2", "values": [["3"]]}]'
json_from_google_sheet = json.loads(from_google_sheet)
json_from_google_sheet
[{'majorDimension': 'COLUMNS', 'range': 'guid!B2', 'values': [['1']]}, {'majorDimension': 'COLUMNS', 'range': 'guid!B2', 'values': [['2']]}, {'majorDimension': 'COLUMNS', 'range': 'guid!B2', 'values': [['3']]}]
type(json_from_google_sheet)
<class 'list'>
for values in json_from_google_sheet:
    print(values['values'][0][0])
    
1
2
3
Ответ написан
Комментировать
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Рекомендую ознакомиться с типами в python, а именно - словари, списки. А также с методами обращения к элементам словаря по ключу и к элементам списка по порядковому номеру.

В конкретном случае это может выглядеть так:
def get_value(data, key, id):
    return data[key][id]

if __name__ == '__main__':  
    data_1 = {'values': [['8241279c-4945-4066-977f-15db2943be44']]}
    
    data_2 = {'majorDimension': 'COLUMNS', 'range': 'guid!B2', 'values': [['102126989']]}
        
    key = 'values'
    id = 0    
    clear_data_1 = get_value(data_1, key, id)
    clear_data_2 = get_value(data_2, key, id)
    print(clear_data_1, clear_data_2)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы