Python | Manieren om tekenreeks naar json-object te converteren

In dit artikel zullen we verschillende manieren zien om string naar JSON in Python te converteren. Dit proces wordt serialisatie genoemd. De JSON-module biedt functies voor het coderen (serialiseren) van Python-objecten in JSON strings en het decoderen (deserialiseren) van JSON-strings in Python-objecten .

  • Coderen (serialiseren) van JSON : Als u een Python-object heeft en dit naar een JSON-tekenreeks wilt converteren, kunt u de json.dumps() functie. Het neemt het Python-object als invoer en retourneert een JSON-tekenreeks.
  • JSON decoderen (deserialiseren). : Als u een JSON-tekenreeks heeft en deze naar een Python-object wilt converteren, kunt u de json.loads() functie. Het neemt de JSON-tekenreeks als invoer en retourneert een Python-object.

Converteer tekenreeks naar JSON-object in Python

Hieronder vindt u methoden om Python-reeksen naar JSON-objecten te converteren:

  • Gebruik makend van json.loads() Methode
  • Met behulp van de eval()-methode
  • Methode ast.literal_eval() gebruiken

Converteer tekenreeks naar JSON met behulp van de json.loads()-methode in Python

In dit voorbeeld converteren we een woordenboek naar een JSON-object met behulp van de json.dump() functie. Vervolgens zullen we de stringrepresentatie van een JSON-object converteren naar een woordenboek met behulp van json.loads() methode.

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

Uitgang:

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 

Converteer tekenreeks naar JSON met behulp van de eval()-methode in Python

De functie eval() in Python evalueert de expressie-invoer als een Python-expressie en voert de Python-expressie (code) uit binnen het programma.

Voorbeeld

In dit voorbeeld converteren we Python snaar representatie in een woordenboek met behulp van eval() methode .

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

Uitgang:

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 

Converteer tekenreeks naar JSON met behulp van de methode ast.literal_eval().

De methode ast.literal_eval() is een onderdeel van de module ast(abstract syntax tree) in Python. Deze functie evalueert een expressieknooppunt, een tekenreeks die bestaat uit een letterlijke waarde, en converteert deze naar een Python-woordenboekobject.

Voorbeeld

Hier zullen we de methode ast.literal_eval() van de vorige module gebruiken om een ​​tekenreeksrepresentatie van het woordenboek naar een Python-versie te converteren woordenboek . De functie ast.literal_eval ontleedt de tekenreeks en maakt een Python-woordenboekobject met dezelfde eigenschappen en waarden. Het resulterende woordenboekobject heeft het type dict. We hebben dan toegang tot de eigenschappen van het woordenboekobject met behulp van de standaardwoordenboektoegangsnotatie (bijvoorbeeld dict_obj[naam]).

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

Uitgang:

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