Python | Būdai konvertuoti eilutę į json objektą

Šiame straipsnyje pamatysime įvairius būdus, kaip konvertuoti eilutę į JSON Python, šis procesas vadinamas serializavimu. JSON modulis suteikia funkcijas, skirtas koduoti (serializuoti) Python objektus JSON eilutes ir dekoduoti (deserializuoti) JSON eilutes į Python objektai .

  • JSON kodavimas (serializavimas). : Jei turite Python objektą ir norite jį konvertuoti į JSON eilutę, galite naudoti json.dumps() funkcija. Jis paima Python objektą kaip įvestį ir grąžina JSON eilutę.
  • JSON dekodavimas (deserializavimas). : Jei turite JSON eilutę ir norite ją konvertuoti į Python objektą, galite naudoti json.loads() funkcija. Jis paima JSON eilutę kaip įvestį ir grąžina Python objektą.

Konvertuokite eilutę į JSON objektą „Python“.

Toliau pateikiami metodai, kaip konvertuoti Python eilutes į JSON objektus:

  • Naudojant json.loads() Metodas
  • Naudojant eval() metodą
  • Naudojant ast.literal_eval() metodą

Konvertuokite eilutę į JSON naudodami json.loads() metodą Python

Šiame pavyzdyje žodyną konvertuosime į JSON objektą naudodami json.dump() funkcija. Tada JSON objekto eilutės atvaizdavimą konvertuosime į žodyną naudodami json.loads() metodas.

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

Išvestis:

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 

Konvertuokite eilutę į JSON naudodami eval() metodą Python

Python funkcija eval() įvertina išraiškos įvestį kaip Python išraišką ir programoje vykdo Python išraišką (kodą).

Pavyzdys

Šiame pavyzdyje mes konvertuojame Python styga vaizdavimas žodyne naudojant eval() metodas .

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

Išvestis:

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 

Konvertuokite eilutę į JSON naudodami ast.literal_eval() metodą

Metodas ast.literal_eval() yra Python modulio ast(abstract sintaksės medis) dalis. Ši funkcija įvertina išraiškos mazgą, eilutę, sudarytą iš literalo, ir paverčia ją Python žodyno objektu.

Pavyzdys

Čia mes naudosime ankstesnio modulio metodą ast.literal_eval(), norėdami konvertuoti žodyno eilutės atvaizdą į Python žodynas . Funkcija ast.literal_eval analizuoja eilutę ir sukuria Python žodyno objektą su tomis pačiomis savybėmis ir reikšmėmis. Gautas žodyno objektas turi dikto tipą. Tada galime pasiekti žodyno objekto ypatybes naudodami standartinį žodyno prieigos žymėjimą (pvz., dict_obj[name]).

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

Išvestis:

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