Gegevens uit JSON in Python parseren

  • George Richardson
  • 0
  • 4731
  • 1528
>

JSON is een favoriet onder ontwikkelaars voor het serialiseren van gegevens. Het wordt gebruikt in de meeste openbare API's op internet en het is een geweldige manier om gegevens tussen programma's uit te wisselen. Het is mogelijk om JSON rechtstreeks vanaf een Linux-commando te parseren, maar Python heeft ook geen probleem met het lezen van JSON.

Het doel van dit artikel is om te beschrijven hoe JSON-gegevens in Python kunnen worden geparseerd.

Uitkeringen

Dit werkt op elke Linux-distributie.

Voorwaarden

Een werkende Linux-installatie met Python.

Conventies

  • # - vereist dat gegeven linux-commando's worden uitgevoerd met root-privileges, hetzij direct als rootgebruiker, hetzij door gebruik van sudo opdracht
  • $ - vereist dat gegeven linux-commando's worden uitgevoerd als een gewone niet-geprivilegieerde gebruiker

Opgericht

Voordat je met JSON in Python kunt gaan werken, heb je wat JSON nodig om mee te werken. Er zijn een paar dingen die u eerst moet instellen. Maak eerst een Python-bestand dat uw code voor deze oefeningen zal bevatten. Importeer de JSON-module in het bestand.
importeer json
Maak vervolgens wat basis-JSON. Het deelt een bijna identieke syntaxis met een woordenboek, dus maak een woordenboek en Python kan het als JSON gebruiken.
json_data = '"a": 1, "b": 2, "c": 3, "d": 4, "e": 5'
Het volgende dat u nodig heeft, is een JSON-bestand. Als u niet bekend bent, zijn het tekstbestanden met de .json uitbreiding. Gebruik je teksteditor naar keuze om er een te maken en geef hem een ​​naam distros.json. Zet de JSON hieronder in het bestand
["Name": "Debian", "Version": "9", "Install": "apt", "Owner": "SPI", "Kernel": "4.9", "Name": "Ubuntu "," Version ":" 17.10 "," Install ":" apt "," Owner ":" Canonical "," Kernel ":" 4.13 ", " Name ":" Fedora "," Version ":" 26 "," Install ":" dnf "," Owner ":" Red Hat "," Kernel ":" 4.13 ", " Name ":" CentOS "," Version ":" 7 "," Install ":" yum "," Owner ":" Red Hat "," Kernel ":" 3.10 ", " Name ":" OpenSUSE "," Version ":" 42.3 "," Install ":" zypper "," Owner ": "Novell", "Kernel": "4.4", "Name": "Arch Linux", "Version": "Rolling Release", "Install": "pacman", "Owner": "SPI", "Kernel ":" 4.13 ", " Name ":" Gentoo "," Version ":" Rolling Release "," Install ":" emerge "," Owner ":" Gentoo Foundation "," Kernel ":" 4.12 " ]

Ontleed eenvoudige JSON

Alles is klaar. Doe een stap terug naar die eenvoudige regel JSON die u eerder hebt gemaakt. Daar ga je eerst mee werken.
Python gebruikt de ladingen methode van de json om JSON uit een string te laden. Heb je de citaten rond dat woordenboek opgemerkt die je voor de JSON hebt gemaakt? Dat komt omdat Python JSON als een string behandelt, tenzij het uit een bestand komt. U hoeft zich er niet al te veel zorgen over te maken. Weet gewoon dat dit formulier gegevens verwerkt terwijl laden behandelt bestanden. Probeer de JSON-gegevens te laden en af ​​te drukken:
 parsed_json = (json.loads (json_data)) print (json.dumps (parsed_json, indent = 4, sort_keys = True)) 
Het zal er niet veel anders uitzien, maar Python ziet het nu in een bruikbare vorm. U kunt het opslaan in een variabele en het herhalen om te zien.
loading_json = json.loads (json_data) voor x in loaded_json: print ("% s:% d"% (x, loaded_json [x]))
Zoals je kunt zien, geladen_json bevat een woordenboek, geen string die er zo uitziet.

Ontleden naar een object

JSON is eigenlijk een object in JavaScript, dus het zou logisch zijn om het als een object in Python te willen importeren. Er zijn een paar manieren om dit te doen, maar de meeste omvatten het maken van een klasse die u instantieert door deze te vullen met gegevens uit de JSON. Er is echt geen directe conversie.
Er is een redelijk directe manier om dit te doen door de JSON in het __dict__ eigendom.
class Test (object): def __init __ (self, data): self .__ dict__ = json.loads (data) test1 = Test (json_data) print (test1.a)


Parseer een JSON-bestand

Je hoeft JSON echt niet te parseren vanuit een Python-programma. Dat is praktisch niet logisch. U zult het echter moeten lezen en ontleden vanuit bestanden, en daarom heeft u dat ingesteld distros.json het dossier.
EEN met kan het proces van het lezen en sluiten van het bestand vereenvoudigen, dus dat is de structuur die hier moet worden gebruikt. Het andere om op te merken is de laden methode vervangt ladingen omdat dit een bestand is. Anders is het proces grotendeels hetzelfde.
met open ('distros.json', 'r') als f: distros_dict = json.load (f) voor distro in distros_dict: print (distro ['Name'])

Gedachten sluiten

Het is echt niet moeilijk om JSON in Python te ontleden. Door de json.load methoden kunt u de JSON naar een woordenboek converteren. Dat woordenboek kan als woordenboek worden gebruikt, of het kan in een object worden geïmporteerd terwijl het wordt geïnstantieerd om gegevens over te brengen naar een nieuw object.

Opdrachten

  1. Maak een nieuw Python-bestand en importeer JSON
  2. Crate een woordenboek in de vorm van een string om als JSON te gebruiken
  3. Gebruik de JSON-module om uw string om te zetten in een woordenboek.
  4. Schrijf een klasse om de gegevens uit uw string te laden.
  5. Instanteer een object uit uw klas en druk er wat gegevens uit af.
  6. Maak een JSON-bestand met wat JSON erin.
  7. Importeer uw JSON-bestand in Python en herhaal de resulterende gegevens.

ZIE OOK ONZE PYTHON-TUTORIAL:
  1. Python Introductie- en installatiehandleiding
  2. Python-bestanden en de interpreter
  3. Experimenteren met cijfers en tekst in Python
  4. Python-variabelen
  5. Werken met nummervariabelen in Python
  6. Python String Basics
  7. Geavanceerde Python-strings
  8. Python-opmerkingen
  9. Python-lijsten
  10. Python List-methoden
  11. Multidimensionale lijsten van Python
  12. Python Tuples
  13. Python Booleaanse operatoren
  14. Python If-verklaringen
  15. Python While Loops
  16. Python For Loops
  17. Python-woordenboeken
  18. Python geavanceerde woordenboeken
  19. Python-functies



Niemand heeft nog op dit artikel gereageerd.

Een verzameling nuttige informatie over het Linux-besturingssysteem en nieuwe technologieën
Nieuwe artikelen, praktische tips, gedetailleerde recensies en handleidingen. Voel je thuis in de wereld van het Linux-besturingssysteem