Python | Måter å konvertere streng til json-objekt
I denne artikkelen vil vi se forskjellige måter å konvertere streng til JSON i Python, denne prosessen kalles serialisering. JSON-modulen gir funksjoner for koding (serialisering) av Python-objekter til JSON strenger og dekoding (deserialisering) JSON-strenger til Python-objekter .
- Koding (Serialisering) JSON : Hvis du har et Python-objekt og vil konvertere det til en JSON-streng, kan du bruke json.dumps() funksjon. Den tar Python-objektet som input og returnerer en JSON-streng.
- Dekoding (deserialisering) JSON : Hvis du har en JSON-streng og ønsker å konvertere den til et Python-objekt, kan du bruke json.loads() funksjon. Den tar JSON-strengen som input og returnerer et Python-objekt.
Konverter streng til JSON-objekt i Python
Nedenfor er metoder for å konvertere Python-strenger til JSON-objekter:
- Ved hjelp av json.loads() Metode
- Bruker eval()-metoden
- Bruker ast.literal_eval()-metoden
Konverter streng til JSON ved å bruke json.loads()-metoden i Python
I dette eksemplet vil vi konvertere en ordbok til et JSON-objekt ved å bruke json.dump() funksjon. Deretter vil vi konvertere strengrepresentasjonen til et JSON-objekt til en ordbok ved hjelp av json.loads() metode.
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))> |
Produksjon:
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 Konverter streng til JSON ved å bruke eval()-metoden i Python
eval()-funksjonen i Python evaluerer uttrykket som et Python-uttrykk og utfører Python-uttrykket (koden) i programmet.
Eksempel
I dette eksemplet konverterer vi Python streng representasjon til en ordbok ved å bruke eval()-metoden .
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))> |
Produksjon:
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 Konverter streng til JSON ved å bruke ast.literal_eval()-metoden
ast.literal_eval()-metoden er en del av ast(abstrakt syntakstre)-modulen i Python. Denne funksjonen evaluerer en uttrykksnode, en streng som består av en bokstavelig, og konverterer den til et Python-ordbokobjekt.
Eksempel
Her vil vi bruke ast.literal_eval()-metoden fra forrige modul for å konvertere en strengrepresentasjon av ordboken til en Python ordbok . Funksjonen ast.literal_eval analyserer strengen og lager et Python-ordbokobjekt med de samme egenskapene og verdiene. Det resulterende ordbokobjektet har en type dikt. Vi kan da få tilgang til egenskapene til ordbokobjektet ved å bruke standard ordboktilgangsnotasjon (f.eks. dict_obj[navn]).
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))> |
Produksjon:
Initial string dictionary: {'name': 'John', 'age': 30, 'city': 'New York'} Final dictionary: {'name': 'John', 'age': 30, 'city': 'New York'}