Python | Sätt att konvertera sträng till json-objekt

I den här artikeln kommer vi att se olika sätt att konvertera sträng till JSON i Python. Denna process kallas serialisering. JSON-modulen tillhandahåller funktioner för att koda (serialisera) Python-objekt till JSON strängar och avkodning (avserialisera) JSON-strängar till Python-objekt .

  • Kodning (Serialisering) JSON : Om du har ett Python-objekt och vill konvertera det till en JSON-sträng kan du använda json.dumps() fungera. Det tar Python-objektet som indata och returnerar en JSON-sträng.
  • Avkodning (avserialisering) JSON : Om du har en JSON-sträng och vill konvertera den till ett Python-objekt kan du använda json.loads() fungera. Den tar JSON-strängen som indata och returnerar ett Python-objekt.

Konvertera sträng till JSON-objekt i Python

Nedan finns metoder för att konvertera Python-strängar till JSON-objekt:

  • Använder sig av json.loads() Metod
  • Använder metoden eval()
  • Använder metoden ast.literal_eval()

Konvertera sträng till JSON med metoden json.loads() i Python

I det här exemplet kommer vi att konvertera en ordbok till ett JSON-objekt med hjälp av json.dump() fungera. Sedan kommer vi att konvertera strängrepresentationen av ett JSON-objekt till en ordbok med hjälp av json.loads() metod.

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 

Konvertera sträng till JSON med eval()-metoden i Python

Funktionen eval() i Python utvärderar uttrycksinmatningen som ett Python-uttryck och exekverar Python-uttrycket (koden) i programmet.

Exempel

I det här exemplet konverterar vi Python sträng representation till en ordbok med hjälp av eval() metod .

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 

Konvertera sträng till JSON med metoden ast.literal_eval().

Metoden ast.literal_eval() är en del av modulen ast(abstrakt syntaxträd) i Python. Den här funktionen utvärderar en uttrycksnod, en sträng som består av en bokstavlig, och konverterar den till ett Python-ordboksobjekt.

Exempel

Här kommer vi att använda metoden ast.literal_eval() från den tidigare modulen för att konvertera en strängrepresentation av ordboken till en Python lexikon . Funktionen ast.literal_eval analyserar strängen och skapar ett Python-ordboksobjekt med samma egenskaper och värden. Det resulterande ordboksobjektet har en typ av dikt. Vi kan sedan komma åt egenskaperna för ordboksobjektet med hjälp av standardordboksåtkomstnotation (t.ex. dict_obj[namn]).

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'}