Python | Spôsoby prevodu reťazca na objekt json

V tomto článku uvidíme rôzne spôsoby, ako previesť reťazec na JSON v Pythone, tento proces sa nazýva serializácia. Modul JSON poskytuje funkcie na kódovanie (serializáciu) objektov Pythonu JSON reťazcov a dekódovanie (deserializácia) reťazcov JSON do Objekty Pythonu .

  • Kódovanie (serializácia) JSON : Ak máte objekt Python a chcete ho previesť na reťazec JSON, môžete použiť json.dumps() funkciu. Ako vstup berie objekt Python a vracia reťazec JSON.
  • Dekódovanie (deserializácia) JSON : Ak máte reťazec JSON a chcete ho previesť na objekt Python, môžete použiť json.loads() funkciu. Ako vstup berie reťazec JSON a vracia objekt Python.

Preveďte reťazec na objekt JSON v Pythone

Nižšie sú uvedené spôsoby prevodu reťazcov Pythonu na objekty JSON:

  • Použitím json.loads() Metóda
  • Použitie metódy eval().
  • Použitie metódy ast.literal_eval().

Preveďte reťazec na JSON pomocou metódy json.loads() v Pythone

V tomto príklade skonvertujeme slovník na objekt JSON pomocou json.dump() funkciu. Potom skonvertujeme reťazcovú reprezentáciu objektu JSON na slovník pomocou json.loads() metóda.

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ýkon:

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 

Preveďte reťazec na JSON pomocou metódy eval() v Pythone

Funkcia eval() v Pythone vyhodnotí vstupný výraz ako výraz Python a vykoná výraz (kód) Pythonu v rámci programu.

Príklad

V tomto príklade konvertujeme Python reťazec reprezentáciu do slovníka pomocou metóda 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ýkon:

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 

Preveďte reťazec na JSON pomocou metódy ast.literal_eval().

Metóda ast.literal_eval() je súčasťou modulu ast(abstraktný strom syntaxe) v Pythone. Táto funkcia vyhodnocuje výrazový uzol, reťazec vytvorený z literálu, a konvertuje ho na objekt slovníka Pythonu.

Príklad

Tu použijeme metódu ast.literal_eval() minulého modulu na konverziu reťazcovej reprezentácie slovníka na Python slovník . Funkcia ast.literal_eval analyzuje reťazec a vytvorí objekt slovníka Python s rovnakými vlastnosťami a hodnotami. Výsledný objekt slovníka má typ diktátu. Potom môžeme pristupovať k vlastnostiam objektu slovníka pomocou štandardného zápisu prístupu do slovníka (napr. dict_obj[meno]).

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

Výkon:

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