logo

Llegir, escriure i analitzar JSON amb Python

JSON és un format de dades lleuger per a l'intercanvi de dades que els humans poden llegir i escriure fàcilment, i analitzar i generar fàcilment per màquines. És un format de text complet independent de l'idioma. Per treballar amb dades JSON, Python té un paquet integrat anomenat JSON.

Exemple de cadena JSON

s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}'>

La sintaxi de JSON es considera un subconjunt de la sintaxi de JavaScript incloent el següent:



  • Parelles nom/valor: Representa dades, el nom va seguit de dos punts ( : ), i els parells Nom/Valor estan separats per una coma( , ).
  • Tirants arrissats: Conté objectes.
  • Claudàtors: Mantenir les matrius amb valors separats per una coma ( , ).

Les claus/nom han de ser cadenes amb cometes dobles i els valors han de ser tipus de dades entre els següents:

  • Corda
  • Número
  • Objecte (objecte JSON)
  • matriu
  • booleà
  • Nul

Exemple de fitxer JSON:

 {  'employee': [  {  'id': '01',  'name': 'Amit',  'department': 'Sales'  },  {  'id': '04',  'name': 'sunil',  'department': 'HR'  }  ] }>

Python Parse JSON String

Al codi següent, convertirem JSON en un objecte Python. Per analitzar la cadena JSON Python, primer importem el mòdul JSON. Tenim una cadena JSON emmagatzemada en una variable 'empleat' i convertim aquesta cadena JSON en un objecte Python utilitzant json.loads() mètode del mòdul JSON a Python. Després d'això, imprimim el nom d'un empleat amb la clau 'nom' .

Python 3




# Python program to convert JSON to Python> import> json> # JSON string> employee>=>'{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict>=> json.loads(employee)> print>(employee_dict)> print>(employee_dict[>'name'>])>

>

quants zeros hi ha 1.000 milions

>

Sortida

{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin>

Python llegeix el fitxer JSON

Suposem que tenim un fitxer JSON que sembla aquest.

pyhton-append-json1

Aquí, hem utilitzat la funció open() per llegir el fitxer JSON. A continuació, el fitxer s'analitza mitjançant el mètode json.load() que ens proporciona un diccionari anomenat data.

Python 3




import> json> # Opening JSON file> f>=> open>(>'data.json'>,)> # returns JSON object as> # a dictionary> data>=> json.load(f)> # Iterating through the json> # list> for> i>in> data[>'emp_details'>]:> >print>(i)> # Closing file> f.close()>

>

>

Sortida:

python-read-json-output1

Converteix Python Dict a JSON

Al codi següent, estem convertint a Diccionari Python a un objecte JSON utilitzant json.dumps() mètode del mòdul JSON a Python. Primer importem el mòdul JSON i després fem un petit diccionari amb alguns parells clau-valor i després el passem al mètode json.dumps() amb 'indent=4' per convertir aquest diccionari de Python en un objecte JSON. Com que hem donat el valor de sagnat a 4, hi ha quatre espais en blanc abans de cada dada tal com es veu a la sortida.

Python 3




# Python program to convert> # Python to JSON> import> json> > # Data to be written> dictionary>=> {> >'id'>:>'04'>,> >'name'>:>'sunil'>,> >'department'>:>'HR'> }> > # Serializing json> json_object>=> json.dumps(dictionary, indent>=> 4>)> print>(json_object)>

>

>

Sortida

{ 'id': '04', 'name': 'sunil', 'department': 'HR' }>

Els següents tipus d'objectes Python es poden convertir en cadenes JSON:

Objectes Python i la seva conversió equivalent a JSON:

Python

Equivalent a JSON

cadena per xerrar

dictat

objecte

llista, tupla

matriu

str

corda

int, flotar

nombre

És cert

veritat

Fals

fals

Cap

nul

Escrivint JSON en un fitxer en Python

Podem escriure JSON al fitxer mitjançant la funció json.dump() del mòdul JSON i la gestió de fitxers a Python. Al programa següent, hem obert un fitxer anomenat sample.json en mode d'escriptura mitjançant 'En' . El fitxer es crearà si no existeix. Json.dump() transformarà el diccionari de Python en una cadena JSON i es desarà al fitxer sample.json.

Python 3




# Python program to write JSON> # to a file> import> json> > # Data to be written> dictionary>=>{> >'name'> :>'sathiyajith'>,> >'rollno'> :>56>,> >'cgpa'> :>8.6>,> >'phonenumber'> :>'9976770500'> }> > with>open>(>'sample.json'>,>'w'>) as outfile:> >json.dump(dictionary, outfile)>

>

>

Sortida:

python-json-write-to-file

Python Pretty Print JSON

Quan convertim una cadena a JSON, les dades estan en un format menys llegible. Per fer-lo més llegible, podem utilitzar una impressió bonica passant arguments addicionals a la funció json.dumps() com ara sagnat i tecles_claus tal com s'utilitza al codi següent.

Python 3




# Python program to convert JSON to Python> import> json> # JSON string> employee>=>'{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict>=> json.loads(employee)> # Pretty Printing JSON string back> print>(json.dumps(employee_dict, indent>=> 4>, sort_keys>=> True>))>

>

>

Sortida

{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }>