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))> |
Sortida:
Initial string dictionary: {'name': 'John', 'age': 30, 'city': 'New York'} Final dictionary: {'name': 'John', 'age': 30, 'city': 'New York'}