Рубрики
Без рубрики

Шпаргалка для работы с данными JSON в Python

В этой статье мы будем делать некоторые общие операции, работая с данными JSON в Python … Tagged с Python, 100daysOfCode, программирование, информатика.

В этой статье мы будем делать некоторые общие операции, работая с данными 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”