Pythona | Sposoby konwersji ciągu znaków na obiekt json

W tym artykule zobaczymy różne sposoby konwersji ciągu znaków na JSON w Pythonie. Proces ten nazywa się serializacją. Moduł JSON udostępnia funkcje umożliwiające kodowanie (serializację) obiektów Pythona JSON strings i dekodowanie (deserializacja) ciągów JSON Obiekty Pythona .

  • Kodowanie (serializacja) JSON : Jeśli masz obiekt Pythona i chcesz go przekonwertować na ciąg JSON, możesz użyć metody json.dumps() funkcjonować. Przyjmuje obiekt Pythona jako dane wejściowe i zwraca ciąg JSON.
  • Dekodowanie (deserializacja) JSON : Jeśli masz ciąg JSON i chcesz go przekonwertować na obiekt Pythona, możesz użyć metody json.loads() funkcjonować. Jako dane wejściowe pobiera ciąg JSON i zwraca obiekt Pythona.

Konwertuj ciąg na obiekt JSON w Pythonie

Poniżej znajdują się metody konwersji ciągów Pythona na obiekty JSON:

  • Za pomocą json.loads() metoda
  • Korzystanie z metody eval().
  • Korzystanie z metody ast.literal_eval().

Konwertuj ciąg na JSON za pomocą metody json.loads() w Pythonie

W tym przykładzie przekonwertujemy słownik na obiekt JSON za pomocą metody json.dump() funkcjonować. Następnie przekonwertujemy ciąg znaków reprezentujący obiekt JSON na słownik za pomocą json.loads() metoda.

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

Wyjście:

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 

Konwertuj ciąg na JSON za pomocą metody eval() w Pythonie

Funkcja eval() w Pythonie ocenia wprowadzone wyrażenie jako wyrażenie Pythona i wykonuje wyrażenie Pythona (kod) w programie.

Przykład

W tym przykładzie konwertujemy język Python strunowy reprezentację w słowniku za pomocą metoda eval(). .

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

Wyjście:

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 

Konwertuj ciąg na JSON za pomocą metody ast.literal_eval().

Metoda ast.literal_eval() jest częścią modułu ast(abstrakcyjne drzewo składni) w Pythonie. Ta funkcja ocenia węzeł wyrażenia, ciąg znaków składający się z literału, i konwertuje go na obiekt słownika Pythona.

Przykład

W tym miejscu użyjemy metody ast.literal_eval() z poprzedniego modułu, aby przekonwertować ciąg znaków reprezentujący słownik na kod Pythona słownik . Funkcja ast.literal_eval analizuje ciąg i tworzy obiekt słownika Pythona o tych samych właściwościach i wartościach. Wynikowy obiekt słownika ma typ dict. Możemy wówczas uzyskać dostęp do właściwości obiektu słownika przy użyciu standardowej notacji dostępu do słownika (np. dict_obj[nazwa]).

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

Wyjście:

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


Może Ci Się Spodobać