logo

Python | Maneres de convertir una cadena en objecte json

En aquest article, veurem diferents maneres de convertir una cadena a JSON a Python, aquest procés s'anomena serialització. El mòdul JSON proporciona funcions per codificar (serialitzar) objectes Python JSON cadenes i descodificació (deserialització) de cadenes JSON a Objectes Python .

  • Codificació (serialització) JSON : Si teniu un objecte Python i voleu convertir-lo en una cadena JSON, podeu utilitzar el json.dumps() funció. Pren l'objecte Python com a entrada i retorna una cadena JSON.
  • Descodificació (deserialització) JSON : Si teniu una cadena JSON i voleu convertir-la en un objecte Python, podeu utilitzar el json.loads() funció. Pren la cadena JSON com a entrada i retorna un objecte Python.

Converteix String en objecte JSON a Python

A continuació es mostren mètodes per convertir cadenes de Python en objectes JSON:



  • Utilitzant json.loads() Mètode
  • Utilitzant el mètode eval().
  • Utilitzant el mètode ast.literal_eval().

Converteix String a JSON mitjançant el mètode json.loads() a Python

En aquest exemple, convertirem un diccionari en un objecte JSON mitjançant el json.dump() funció. A continuació, convertirem la representació de cadena d'un objecte JSON en un diccionari mitjançant json.loads() mètode.

Python 3








import> json> # initialising json object> ini_string>=> {>'nikhil'>:>1>,>'akash'> :>5>,> >'manjeet'> :>10>,>'akshat'> :>15>}> # printing initial json> ini_string>=> json.dumps(ini_string)> print> (>'initial 1st dictionary'>, ini_string)> print> (>'type of ini_object'>,>type>(ini_string))> # converting string to json> final_dictionary>=> json.loads(ini_string)> # printing final result> print> (>'final dictionary'>,>str>(final_dictionary))> print> (>'type of final_dictionary'>,>type>(final_dictionary))>

>

>

Sortida:

initial 1st dictionary {'manjeet': 10, 'nikhil': 1, 'akshat': 15, 'akash': 5} type of ini_object final dictionary {'nikhil': 1, 'manjeet': 10, 'akshat': 15, 'akash': 5} type of final_dictionary>

Converteix String a JSON mitjançant el mètode eval() a Python

La funció eval() de Python avalua l'expressió d'entrada com una expressió de Python i executa l'expressió Python (codi) dins del programa.

Exemple

En aquest exemple, estem convertint Python corda representació a un diccionari mitjançant l'ús mètode eval(). .

Python 3




# initialising json object string> ini_string>=> '''{'nikhil': 1, 'akash' : 5,> >'manjeet' : 10, 'akshat' : 15}'''> # printing initial json> print> (>'initial 1st dictionary'>, ini_string)> print> (>'type of ini_object'>,>type>(ini_string))> # converting string to json> final_dictionary>=> eval>(ini_string)> # printing final result> print> (>'final dictionary'>,>str>(final_dictionary))> print> (>'type of final_dictionary'>,>type>(final_dictionary))>

>

>

Sortida:

initial 1st dictionary {'nikhil': 1, 'akash' : 5, 'manjeet' : 10, 'akshat' : 15} type of ini_object final dictionary {'nikhil': 1, 'manjeet': 10, 'akash': 5, 'akshat': 15} type of final_dictionary>

Converteix String a JSON mitjançant el mètode ast.literal_eval().

El mètode ast.literal_eval() és una part del mòdul ast (arbre de sintaxi abstracta) a Python. Aquesta funció avalua un node d'expressió, una cadena formada per un literal, i el converteix en un objecte de diccionari de Python.

Exemple

Aquí, utilitzarem el mètode ast.literal_eval() del mòdul passat per convertir una representació de cadena del diccionari en un Python diccionari . La funció ast.literal_eval analitza la cadena i crea un objecte de diccionari Python amb les mateixes propietats i valors. L'objecte diccionari resultant té un tipus de dict. Aleshores podem accedir a les propietats de l'objecte de diccionari mitjançant la notació estàndard d'accés al diccionari (per exemple, dict_obj[nom]).

Python 3




import> ast> # initialize the string to be converted> string>=> '{'name': 'John', 'age': 30, 'city': 'New York'}'> # use the ast.literal_eval function to parse the string and create a dictionary object> dict_obj>=> ast.literal_eval(string)> # printing final result> print> (>'Initial string dictionary: '>,string)> print> (>'Final dictionary: '>,dict_obj)> print>(>type>(dict_obj))>

>

com deseleccioneu al gimp
>

Sortida:

Initial string dictionary: {'name': 'John', 'age': 30, 'city': 'New York'} Final dictionary: {'name': 'John', 'age': 30, 'city': 'New York'}>