Работа с массивами и словарями

Работа в Salebot с такими типами данных как словарь и массив

API чаще всего возвращает JSON и временами возникает задача изменить его. Функции, описанные в этой статье созданы именно для этого.

Массив (список) — структура данных, хранящая набор значений (элементов массива), идентифицируемых по индексу.

Словарь (map) — это структура данных, представляющая собой специальным образом организованный набор элементов хранимых данные. Все данные хранятся в виде пар ключ-значение. Доступ к элементам данных осуществляется по ключу. Ключ всегда должен быть уникальным в пределах одного словаря, данные могут дублироваться при необходимости.

Адресация

Лучше всего можно понять принцип адресации при работе с JSON на примере.

{"suggestions": [{"value": "Белорусский рубль", "unrestricted_value": "Белорусский рубль", "data": {"code": "933", "strcode": "BYN", "name": "Белорусский рубль", "country": "Беларусь"}}]}

suggestions - ключ для массива [{"value": "Белорусский рубль", "unrestricted_value": "Белорусский рубль", "data": {"code": "933", "strcode": "BYN", "name": "Белорусский рубль", "country": "Беларусь"}}]

suggestions|0 - клюя для первого элемента массива {"value": "Белорусский рубль", "unrestricted_value": "Белорусский рубль", "data": {"code": "933", "strcode": "BYN", "name": "Белорусский рубль", "country": "Беларусь"}}

suggestions|0|value - ключ для значения "Белорусский рубль"

Самый длинный ключ в этом JSON:

suggestions|0|data|strcode - ключ для значения BYN

Ключи разделяются вертикальной чертой. Если в JSON есть массив, то доктсуп к его элементу идет по номеру, начиная с 0 и также записывается через вертикальную черту.

Нумерация в массиве идет с 0

Нумерация в массиве идет с 0

В адресации числа приравниваются к строкам и наоборот. Тоесть равнозначно '6' и 6

Разницы между словарем и массивом нет. Массив является частью словаря или если в массиве находятся словари. Раздельные рпимеры для массива и словаря примеры сделаны для удобства понимания.

Получение элемента массива или словаря

get - получение элемента массива или словаря. 2 параметра. Словарь или массив и ключ для поиска. Возвращает найденное значение.

Если ключ не найден, то вернется None

Пример со словарем:

s = {"1": 123, "2": 234, "q": {"w": "e"}} q = get(s, 'q')

Пример с массивом:

Запись значения в массив или словарь

set - создать новый массив или словарь с измененным значением. 3 параметра. Словарь(массив), ключ(индекс) и значение для записи. Метод возвращает изменённую строку.

Метод не меняет исходную переменную!

Пример со словарем:

Этот код заменяет значение по ключу q. Результатом будет: {"1":123,"2":234,"q":"text"}

Пример с массивом:

Данные по умолчанию вставляются как строки, если вам надо вставить массив или словарь, передайте дополнительный парамтер True. Он означает, что вы вставляете JSON.

Проверка наличия ключа

exist_key - проверка наличия ключа в словаре. Два параметра: словарь и ключ для поиска.

Возвращаемое значение True или False, в зависимости найден ключ или нет.

Пример использования:

s = {"1": 123, "2": 234, "q": {"w": "e"}} q = if(exist_key(s, 'q'), 'Найдено', 'Еще строка')

Проверка наличия элемента в массиве

in_array - проверка наличия элемента в массиве. Для параметра: массив и значение для поиска.

Возвращаемое значение True или False, в зависимости найдено значение или нет.

Пример использования:

s = ["Вася", "Петя", "Лена"] q = if(in_array(s, 'Аня'), 'Найдено', 'Еще строка')

Длинна массива

arr_len - определение длинны массива. Принимает один параметр - число. Возвращает число.

Пример использования:

s = ["Вася", "Петя", "Лена"] q = if(arr_len(s) > 5, 'Группа укомплектована', 'Присоединяйтесь в наши ряды!')

Вставка элемента в конец массива

append - вставка элемента в конец массива. Два параметра: массив и вставляемый элемент. Возвращает массив, в который добавлено значение в конец. Исходная строка не меняется.

Пример использования:

s = ["Вася", "Петя", "Лена"] q = append(s, 'Никита')

В переменной s в результате будет находиться ["Вася", "Петя", "Лена"], а в q ["Вася", "Петя", "Лена", "Никита"]

Данные по умолчанию вставляются как строки, если вам надо вставить массив или словарь, передайте дополнительный парамтер True. Он означает, что вы вставляете JSON.

Вставка значения в определенную позицию массива

insert - вставка элемента в определенную позицию массива. Три параметра: массив, позиция для вставки, число. Возвращает массив, в который добавлено значение в указанную позицию. Исходная строка не меняется.

s = ["Вася", "Петя", "Лена"] q = insert(s, 1, 'Никита')

В переменной s в результате будет находиться ["Вася", "Петя", "Лена"], а в q ["Вася", "Никита", "Петя", "Лена"]

Данные по умолчанию вставляются как строки, если вам надо вставить массив или словарь, передайте дополнительный парамтер True. Он означает, что вы вставляете JSON.

Удаление из массива или словаря

del - удаление значения из массива или из словаря. Принимает два параметра: массив или словарь, ключ, по которому будет удаление. Возвращает измененный словарь кли массив, исходную строку не меняет.

Пример со словарем:

Пример с массивом: