logo

Python | Způsoby převodu řetězce na objekt json

V tomto článku uvidíme různé způsoby, jak převést řetězec na JSON v Pythonu, tento proces se nazývá serializace. Modul JSON poskytuje funkce pro kódování (serializaci) objektů Pythonu JSON řetězce a dekódování (deserializace) řetězců JSON do Objekty Pythonu .

  • Kódování (serializace) JSON : Pokud máte objekt Python a chcete jej převést na řetězec JSON, můžete použít json.dumps() funkce. Vezme objekt Python jako vstup a vrátí řetězec JSON.
  • Dekódování (deserializace) JSON : Pokud máte řetězec JSON a chcete jej převést na objekt Python, můžete použít json.loads() funkce. Vezme řetězec JSON jako vstup a vrátí objekt Pythonu.

Převeďte řetězec na objekt JSON v Pythonu

Níže jsou uvedeny metody převodu řetězců Pythonu na objekty JSON:

  • Použitím json.loads() Metoda
  • Použití metody eval().
  • Použití metody ast.literal_eval().

Převeďte řetězec na JSON pomocí metody json.loads() v Pythonu

V tomto příkladu převedeme slovník na objekt JSON pomocí json.dump() funkce. Poté převedeme řetězcovou reprezentaci objektu JSON na slovník pomocí json.loads() metoda.



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

>

>

Výstup:

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>

Převeďte řetězec na JSON pomocí metody eval() v Pythonu

Funkce eval() v Pythonu vyhodnotí vstup výrazu jako výraz Python a v programu provede výraz (kód) Pythonu.

Příklad

V tomto příkladu převádíme Python tětiva reprezentace do slovníku pomocí 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))>

>

>

Výstup:

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>

Převeďte řetězec na JSON pomocí metody ast.literal_eval().

Metoda ast.literal_eval() je součástí modulu ast(abstraktní syntaktický strom) v Pythonu. Tato funkce vyhodnotí uzel výrazu, řetězec tvořený literálem, a převede jej na objekt slovníku Python.

Příklad

Zde použijeme metodu ast.literal_eval() minulého modulu k převodu řetězcové reprezentace slovníku na Python slovník . Funkce ast.literal_eval analyzuje řetězec a vytvoří objekt slovníku Python se stejnými vlastnostmi a hodnotami. Výsledný objekt slovníku má typ dict. K vlastnostem objektu slovníku pak můžeme přistupovat pomocí standardního zápisu přístupu do slovníku (např. dict_obj[jméno]).

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

>

základy selenu
>

Výstup:

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