logo

Pitone | Modi per convertire una stringa in un oggetto json

In questo articolo vedremo diversi modi per convertire una stringa in JSON in Python, questo processo è chiamato serializzazione. Il modulo JSON fornisce funzioni per codificare (serializzare) oggetti Python JSON stringhe e decodifica (deserializzazione) stringhe JSON in Oggetti Python .

  • Codifica (serializzazione) JSON : Se hai un oggetto Python e desideri convertirlo in una stringa JSON, puoi utilizzare il file json.dumps() funzione. Prende l'oggetto Python come input e restituisce una stringa JSON.
  • Decodifica (deserializzazione) JSON : Se hai una stringa JSON e vuoi convertirla in un oggetto Python, puoi usare il file json.loads() funzione. Prende la stringa JSON come input e restituisce un oggetto Python.

Converti stringa in oggetto JSON in Python

Di seguito sono riportati i metodi per convertire stringhe Python in oggetti JSON:



  • Utilizzando json.loads() Metodo
  • Utilizzando il metodo eval()
  • Utilizzando il metodo ast.literal_eval()

Converti stringa in JSON utilizzando il metodo json.loads() in Python

In questo esempio, convertiremo un dizionario in un oggetto JSON utilizzando il file json.dump() funzione. Quindi convertiremo la rappresentazione di stringa di un oggetto JSON in un dizionario utilizzando json.loads() metodo.

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

>

>

Produzione:

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>

Converti stringa in JSON utilizzando il metodo eval() in Python

La funzione eval() in Python valuta l'input dell'espressione come un'espressione Python ed esegue l'espressione Python (codice) all'interno del programma.

Esempio

In questo esempio, stiamo convertendo Python corda rappresentazione in un dizionario utilizzando metodo 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))>

>

>

Produzione:

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>

Converti stringa in JSON utilizzando il metodo ast.literal_eval()

Il metodo ast.literal_eval() è una parte del modulo ast(albero della sintassi astratta) in Python. Questa funzione valuta un nodo di espressione, una stringa composta da un valore letterale, e lo converte in un oggetto dizionario Python.

Esempio

Qui utilizzeremo il metodo ast.literal_eval() del modulo precedente per convertire una rappresentazione di stringa del dizionario in un Python dizionario . La funzione ast.literal_eval analizza la stringa e crea un oggetto dizionario Python con le stesse proprietà e valori. L'oggetto dizionario risultante ha un tipo dict. Possiamo quindi accedere alle proprietà dell'oggetto dizionario utilizzando la notazione di accesso al dizionario standard (ad esempio dict_obj[nome]).

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

>

numeri bloccati
>

Produzione:

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