Python | Måder at konvertere streng til json-objekt

I denne artikel vil vi se forskellige måder at konvertere streng til JSON i Python, denne proces kaldes serialisering. JSON-modulet giver funktioner til indkodning (serialisering) af Python-objekter JSON strenge og afkodning (deserialisering) af JSON-strenge til Python objekter .

  • Kodning (Serialisering) JSON : Hvis du har et Python-objekt og vil konvertere det til en JSON-streng, kan du bruge json.dumps() fungere. Det tager Python-objektet som input og returnerer en JSON-streng.
  • Afkodning (afserialisering) JSON : Hvis du har en JSON-streng og vil konvertere den til et Python-objekt, kan du bruge json.loads() fungere. Den tager JSON-strengen som input og returnerer et Python-objekt.

Konverter streng til JSON-objekt i Python

Nedenfor er metoder til at konvertere Python-strenge til JSON-objekter:

  • Ved brug af json.loads() Metode
  • Brug af metoden eval()
  • Brug af metoden ast.literal_eval()

Konverter streng til JSON ved hjælp af json.loads()-metoden i Python

I dette eksempel vil vi konvertere en ordbog til et JSON-objekt ved hjælp af json.dump() fungere. Derefter vil vi konvertere strengrepræsentationen af ​​et JSON-objekt til en ordbog ved hjælp af 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))>

Produktion:

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 hjælp af eval()-metoden i Python

Funktionen eval() i Python evaluerer udtryksinputtet som et Python-udtryk og udfører Python-udtrykket (koden) i programmet.

Eksempel

I dette eksempel konverterer vi Python snor repræsentation til en ordbog ved at bruge eval() metode .

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

Produktion:

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 hjælp af metoden ast.literal_eval()

Metoden ast.literal_eval() er en del af modulet ast(abstrakt syntakstræ) i Python. Denne funktion evaluerer en udtryksknude, en streng, der består af en bogstavelig, og konverterer den til et Python-ordbogsobjekt.

Eksempel

Her vil vi bruge ast.literal_eval()-metoden fra det tidligere modul til at konvertere en strengrepræsentation af ordbogen til en Python ordbog . Funktionen ast.literal_eval analyserer strengen og opretter et Python-ordbogsobjekt med de samme egenskaber og værdier. Det resulterende ordbogsobjekt har en type diktat. Vi kan derefter få adgang til egenskaberne for ordbogsobjektet ved hjælp af standard ordbogsadgangsnotation (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))>

Produktion:

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