Одним из широко распространённых форматов файлов для обмена данными в сети является текстовый формат json.
JSON позволяет изящно и понятно хранить сложные структуры данных (в т.ч. и последовательности, которые иногда называют массивами) в читабельном виде.
По сути json - это словарь (ассоциативный массив), элементами которых могут быть как словари (отличительный признак - {}, фигурные скобки), так и списки (отличительный признак - [], квадратные).
Пусть дан файл с расширением *.json (это обычный текстовый файл), содержащий следующее:
{
"orderID": 12345,
"shopperName": "Иван",
"shopperEmail": "ivanov@example.com",
"contents": [
{
"productID": 34,
"productName": "Super product",
"quantity": 1
},
{
"productID": 56,
"productName": "Super product",
"quantity": 3
}
],
"orderCompleted": true
}
С помощью модуля ... json (неожиданно, неправда ли!?) в python его можно легко считать в словарь (dictionary).
Если в файле содержатся кириллические символы (русские буквы в просторечье), то не забудем вставить encoding="utf-8" в качестве аргумента для open.
Итого код для чтения json-файла выглядит так
import json
f = open('./templates/new.json', encoding="utf-8")
dic = json.load(f) # dic - словарь
f.close()
Т.к. dic - это просто словарь, то в него можно добавлять элементы. Добавим список с ключом "alpha". Модифицированный словарь запишем в виде json-файла.
Т.к. в словаре есть кириллица, то не забудем добавить аргумент ensure_ascii=False.
#Чтение, модификация и запись
import json
f = open('./templates/new.json', encoding="utf-8")
dic = json.load(f)
print(dic.keys())
f.close()
dic['alpha'] = [1, 2, 4, 5]
with open('data.json', 'w') as outfile:
json.dump(dic, outfile, ensure_ascii=False)
Подписаться на:
Комментарии к сообщению (Atom)
Как перевести UV в направление и скорость ветра? How to convert wind UV-components to direction and velocity?
Всё просто. def uv2dir(u, v): ''' Источник: https://github.com/blaylockbk/Ute_WRF/blob/master/functions/wind_calc...
-
Задача: Поставить компилятор fortran-а на компьютер/ноутбук с операционной системой Windows7 (на 64 разрядную) Методы решения: Geany, CVF...
-
Задача: Получить значения p-квантиля данного массива Методы решения: python, scipy, numpy Значения квантиля (в зарубежных источниках ча...
-
Цель: Есть файл в формате netCDF. Хочется получить карту какой-либо гидрометеорологической величины за какой-нибудь временной срез в Window...
Комментариев нет:
Отправить комментарий