Python – #10 – JSON cz. 2

Wprowadzenie.

W drugiej części wpisu o formacie JSON w Pythonie przedstawiłem odwrotny kierunek konwersji, to znaczy konwersję z formatu JSON do typów danych Pythona. 

Zakres artykułu.

  • Konwersja z JSON do Dict
  • Konwersja z pliku JSON do Dict

Konwersja z JSON do Dict

Tak samo, jak w poprzedniej części musimy zaimportować pakiet json.

import json

W następnym kroku stwórzmy stringa w formacie JSON, jako nasze dane wejściowe.

myJson = '{"name": "Dominik", "age": 28, "married": true, "city": "Warsaw", "favorite_colors": ["green", "blue"]}'

Następnie przy pomocy metody loads() dostarczonej przez pakiet json, załadujmy nasz string, umieszczając go jako argument metody loads(). Metoda loads() zwróci nam obiekt do konkretnego typu. Następnie sprawdźmy jaki typ zwróconego obiektu zostanie wyświetlony oraz sprawdźmy co, zawiera zwrócona zmienna przy pomocy metody print()

myDict = json.loads(myJson)

print(type(myDict))
print(myDict)
print(myDict['city'])

Cały kod programu prezentuje się następująco.

import json

myJson = '{"name": "Dominik", "age": 28, "married": true, "city": "Warsaw", "favorite_colors": ["green", "blue"]}'

myDict = json.loads(myJson)

print(type(myDict))
print(myDict)
print(myDict['city'])

Poniżej zamieszczam wynik naszego kodu.

Jak możemy zobaczyć, otrzymaliśmy obiekt typu dict. Wyświetlenie dict odbyło się standardowo oraz odwoływanie do konkretnej wartości klucza również jest takie samo jak w przypadku zwykłego słownika.

Konwersja z pliku JSON do Dict

W poprzednim wpisie zapisaliśmy dane w formacie JSON w pliku. W tej części dokonamy odwrotnej czynności, a mianowicie wczytamy ostatnio zapisany plik i go wyświetlimy w terminalu.

Metoda, która wczytuje plik w formacie JSON to load(). Metoda load() przyjmuje argument, którym jest obiekt do pliku JSON. Kod, który wczyta plik i zwróci nam konkretny typ, wygląda następująco.

with open('myTxtFile.json') as jsonFile:
    myDict = json.load(jsonFile)

Cały kod w tym przypadku wygląda następująco.

import json

with open('myTxtFile.json') as jsonFile:
    myDict = json.load(jsonFile)

print(type(myDict))
print(myDict)
print(myDict['city'])

Wynik, jaki otrzymamy po wykonaniu powyższego kodu wygląda w ten sposób.

Sprawdźmy również, czy tak samo zachowa się sformatowany plik JSON. W tym celu podmieniamy jedynie nazwę pliku.

with open('myPrettyTxtFile.json') as jsonFile:
    myDict = json.load(jsonFile)

Cały kod w tym przypadku wygląda następująco.

import json

with open('myPrettyTxtFile.json') as jsonFile:
    myDict = json.load(jsonFile)

print(type(myDict))
print(myDict)
print(myDict['city'])

A wynik, jaki otrzymamy, powinien być taki sam jak ostatnio, co oznacza, że formatowanie nie ma znaczenia.

Autor artykułu
Dominik Bednarski

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.