Python | Modalități de a converti șirul în obiect json

În acest articol, vom vedea diferite moduri de a converti șirul în JSON în Python, acest proces se numește serializare. Modulul JSON oferă funcții pentru codificarea (serializarea) obiectelor Python în JSON șiruri de caractere și decodificare (deserializare) șiruri JSON în Obiecte Python .

  • Codificarea (serializarea) JSON : Dacă aveți un obiect Python și doriți să-l convertiți într-un șir JSON, puteți utiliza json.dumps() funcţie. Ia obiectul Python ca intrare și returnează un șir JSON.
  • Decodificare (deserializare) JSON : Dacă aveți un șir JSON și doriți să-l convertiți într-un obiect Python, puteți utiliza json.loads() funcţie. Ia șirul JSON ca intrare și returnează un obiect Python.

Convertiți șirul în obiect JSON în Python

Mai jos sunt metode pentru a converti șirurile Python în obiecte JSON:

  • Folosind json.loads() Metodă
  • Folosind metoda eval().
  • Folosind metoda ast.literal_eval().

Convertiți șirul în JSON folosind metoda json.loads() în Python

În acest exemplu, vom converti un dicționar într-un obiect JSON folosind json.dump() funcţie. Apoi vom converti reprezentarea în șir a unui obiect JSON într-un dicționar folosind json.loads() metodă.

Python3




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))>

Ieșire:

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 

Convertiți șirul în JSON folosind metoda eval() în Python

Funcția eval() din Python evaluează intrarea expresiei ca o expresie Python și execută expresia (codul) Python în program.

Exemplu

În acest exemplu, convertim Python şir reprezentare la un dicționar prin utilizarea metoda eval(). .

Python3




# 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))>

Ieșire:

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 

Convertiți șirul în JSON folosind metoda ast.literal_eval().

Metoda ast.literal_eval() este o parte a modulului ast (arborele de sintaxă abstractă) din Python. Această funcție evaluează un nod de expresie, un șir format dintr-un literal și îl convertește într-un obiect dicționar Python.

Exemplu

Aici, vom folosi metoda ast.literal_eval() a modulului trecut pentru a converti o reprezentare șir a dicționarului într-un Python dicţionar . Funcția ast.literal_eval parsează șirul și creează un obiect dicționar Python cu aceleași proprietăți și valori. Obiectul dicționar rezultat are un tip de dict. Apoi putem accesa proprietățile obiectului dicționar folosind notația standard de acces la dicționar (de exemplu, dict_obj[nume]).

Python3




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))>

Ieșire:

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