logo

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

>

wat is Java-hashmap
>

Uitgang:

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