В этой статье мы будем делать некоторые общие операции, работая с данными JSON в Python
Давайте предположим, что у нас есть файл JSON со следующими данными
[ { "color": "red", "value": "#f00" }, { "color": "green", "value": "#0f0" }, { ... }, { ... }, ]
Я усекнул данные, но это в основном список объектов с цветом и соответствующими его значением шестнадцатеричного.
Чтение файлов JSON
import json path_to_file = "data.json" with open(path_to_file) as file: data = json.load(file) print(data)
Красивая печать json
Вывод трудно прочитать, давайте улучшим его форматирование. Есть несколько способов, которыми мы можем это сделать
import json import pprint path_to_file = "data.json" with open(path_to_file) as file: data = json.load(file) pprint.pprint(data) # 1st Way
Мы можем использовать симпатичную печатную библиотеку.
Второй путь – это использование библиотеки JSON – функция печати
import json import pprint path_to_file = "data.json" with open(path_to_file) as file: data = json.load(file) print(json.dumps(data, indent=4, sort_keys=True)) # 2nd Way
Загрузка JSON из строки
Мы будем использовать json.loads ()
import json import pprint stringJSON = ''' [ { "color": "red", "value": "#f00" }, { "color": "green", "value": "#0f0" } ] ''' data = json.loads(stringJSON) pprint.pprint(data)
Преобразование объектов в JSON
Мы будем использовать json.dumps (). Ниже приведены некоторые обычно форматированные данные, которые вы можете преобразовать в объект JSON.
Словарь
import json data = { "key1" : "value1", "key2" : "value2", "key3" : "value3" } jsonData = json.dumps(data, indent=4) print(jsonData)
Список словари
import json data = [ { "dictionary1" : "value1" }, { "dictionary2" : "value2" }, { "dictionary3" : "value3" } ] jsonData = json.dumps(data, indent=4) print(jsonData)
Словарь словарей
import json data = { "dictionary1" : {"key1" : "value1"}, "dictionary2" : {"key2" : "value2"}, "dictionary3" : {"key3" : "value3"} } jsonData = json.dumps(data, indent=4) print(jsonData)
Список списков
import json data = [ [1,2,3,4], ["helo" , "world" , "python"] ] jsonData = json.dumps(data, indent=4) print(jsonData)
Сохранение данных JSON в файл
Мы будем использовать функцию json.dump (). Если файл не существует, он создаст новый файл. Если файл существует, он будет перезаписать данные в файле
import json data = [ { "dictionary1" : "value1" }, { "dictionary2" : "value2" }, { "dictionary3" : "value3" } ] nameOfFile = "jsonOutput.json" with open(nameOfFile,"w") as file: json.dump(data, file) print("Saved File")
Расположение JSON
Расположение файла JSON зависит от формата данных, это может быть простой словарь, список словарей и т. Д. Логика для анализа данных JSON будет варьироваться в зависимости от случая. Синтаксис – это тот, который мы следуем во время прохождения списков или словарей. Следующие фрагменты кода могут быть полезны. В большинстве случаев вам придется использовать некоторую комбинацию из приведенных ниже случаев.
Расположение JSON хранится как словарь
Это “счастливый случай”
import json ''' DATA FORMAT { "key1" : "value1", "key2" : "value2", "key3" : "value3" } ''' with open("data.json") as file: jsonData = json.load(file) for key,value in jsonData.items(): print(key,value)
Диаграмм JSON хранится как список словарей
import json ''' DATA FORMAT [ { "dictionary1" : "value1"}, { "dictionary2" : "value2"}, { "dictionary3" : "value3"} ] ''' with open("data.json") as file: jsonData = json.load(file) for item in jsonData: for key,value in item.items(): print(key,value)
Диаграмм JSON хранится как словарь словарей
import json ''' DATA FORMAT { "dictionary1" : {"key1" : "value1"}, "dictionary2" : {"key2" : "value2"}, "dictionary3" : {"key3" : "value3"} } ''' with open("data.json") as file: jsonData = json.load(file) for jsonName,jsonObject in jsonData.items(): print(jsonName) for key,value in jsonObject.items(): print(key,value)
Диаграмм JSON хранится в виде списка списков
import json ''' DATA FORMAT [ [1,2,3,4], ["helo" , "world" , "python"] ] ''' with open("data.json") as file: jsonData = json.load(file) for listItem in jsonData: for element in listItem: print(element)
Трансформация данных JSON
В следующих разделах мы преобразуем некоторые данные JSON и храним их в новом файле
Случай 1: Список словарей в словаре
import json with open("data.json") as file: jsonData = json.load(file) result = {} for item in jsonData: result[item['color']] = item['value'] with open("jsonOutput.json","w") as file: json.dump(result, file) print("Saved File")
Case2: Словарь словарей в список словарей
import json with open("data.json") as file: jsonData = json.load(file) result = [] for jsonName,jsonObject in jsonData.items(): result.append(jsonObject) with open("jsonOutput.json","w") as file: json.dump(result, file) print("Saved File")
Case3: Список словарей в список списков
import json with open("data.json") as file: jsonData = json.load(file) colors = [] colorValues = [] for item in jsonData: colors.append(item['color']) colorValues.append(item['value']) result =[ colors , colorValues] with open("jsonOutput.json","w") as file: json.dump(result, file) print("Saved File")
Связаться со мной на LinkedIn , Твиттер
Оригинал: “https://dev.to/rahulbanerjee99/a-cheat-sheet-for-working-with-json-data-in-python-320b”