Python | Tapoja muuntaa merkkijono json-objektiksi

Tässä artikkelissa näemme erilaisia ​​tapoja muuntaa merkkijono JSON-muotoon Pythonissa. Tätä prosessia kutsutaan serialisoinniksi. JSON-moduuli tarjoaa toimintoja Python-objektien koodaamiseen (sarjoitukseen). JSON merkkijonoja ja purkaa (deserialisoimalla) JSON-merkkijonoja Python-objektit .

  • Koodaus (sarjoitus) JSON : Jos sinulla on Python-objekti ja haluat muuntaa sen JSON-merkkijonoksi, voit käyttää json.dumps() toiminto. Se ottaa Python-objektin syötteenä ja palauttaa JSON-merkkijonon.
  • JSON-koodin purkaminen (sarjan poistaminen). : Jos sinulla on JSON-merkkijono ja haluat muuntaa sen Python-objektiksi, voit käyttää json.loads() toiminto. Se ottaa JSON-merkkijonon syötteenä ja palauttaa Python-objektin.

Muunna merkkijono JSON-objektiksi Pythonissa

Alla on menetelmiä Python-merkkijonojen muuttamiseksi JSON-objekteiksi:

  • Käyttämällä json.loads() Menetelmä
  • Käyttämällä eval()-menetelmää
  • Metodia ast.literal_eval() käytetään

Muunna merkkijono JSON-muotoon käyttämällä json.loads()-menetelmää Pythonissa

Tässä esimerkissä muunnetaan sanakirja JSON-objektiksi käyttämällä json.dump() toiminto. Sitten muunnetaan JSON-objektin merkkijonoesitys sanakirjaksi käyttämällä json.loads() menetelmä.

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

Lähtö:

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 

Muunna merkkijono JSONiksi käyttämällä eval()-menetelmää Pythonissa

Pythonin eval()-funktio arvioi lausekkeen syötteen Python-lausekkeena ja suorittaa Python-lausekkeen (koodin) ohjelmassa.

Esimerkki

Tässä esimerkissä muunnamme Pythonin merkkijono esitys sanakirjaan käyttämällä eval() -menetelmä .

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

Lähtö:

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 

Muunna merkkijono JSON-muotoon käyttämällä ast.literal_eval()-menetelmää

Metodi ast.literal_eval() on osa Pythonin ast(abstract syntax tree) -moduulia. Tämä funktio arvioi lausekesolmun, literaalista koostuvan merkkijonon, ja muuntaa sen Python-sanakirjaobjektiksi.

Esimerkki

Käytämme tässä aiemman moduulin ast.literal_eval()-menetelmää sanakirjan merkkijonoesityksen muuntamiseen Pythoniksi sanakirja . Funktio ast.literal_eval jäsentää merkkijonon ja luo Python-sanakirjaobjektin, jolla on samat ominaisuudet ja arvot. Tuloksena olevalla sanakirjaobjektilla on jonkinlainen sanelu. Tämän jälkeen voimme käyttää sanakirjaobjektin ominaisuuksia käyttämällä tavallista sanakirjakäyttömerkintää (esim. dict_obj[name]).

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

Lähtö:

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