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'}