logo

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

>

hur uppfann skolan
>

Produktion:

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