En este artículo, veremos diferentes formas de convertir cadenas a JSON en Python; este proceso se llama serialización. El módulo JSON proporciona funciones para codificar (serializar) objetos Python en JSON cadenas y decodificar (deserializar) cadenas JSON en Objetos de Python .
- Codificación (serialización) JSON : Si tiene un objeto Python y desea convertirlo en una cadena JSON, puede usar el json.volcados() función. Toma el objeto Python como entrada y devuelve una cadena JSON.
- Decodificar (deserializar) JSON : Si tiene una cadena JSON y desea convertirla en un objeto Python, puede usar el json.cargas() función. Toma la cadena JSON como entrada y devuelve un objeto Python.
Convertir cadena en objeto JSON en Python
A continuación se muestran métodos para convertir cadenas de Python en objetos JSON:
- Usando json.cargas() Método
- Usando el método eval()
- Usando el método ast.literal_eval()
Convierta una cadena a JSON usando el método json.loads() en Python
En este ejemplo, convertiremos un diccionario en un objeto JSON usando el json.volcado() función. Luego convertiremos la representación de cadena de un objeto JSON en un diccionario usando json.cargas() método.
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))> |
>
>
Producción:
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>
Convertir cadena a JSON usando el método eval() en Python
La función eval() en Python evalúa la expresión ingresada como una expresión de Python y ejecuta la expresión (código) de Python dentro del programa.
Ejemplo
En este ejemplo, estamos convirtiendo Python cadena representación en un diccionario mediante el uso método de evaluación() .
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))> |
>
>
Producción:
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>
Convertir cadena a JSON usando el método ast.literal_eval()
El método ast.literal_eval() es parte del módulo ast(árbol de sintaxis abstracta) en Python. Esta función evalúa un nodo de expresión, una cadena formada por un literal, y lo convierte en un objeto de diccionario de Python.
Ejemplo
Aquí, usaremos el método ast.literal_eval() del módulo anterior para convertir una representación de cadena del diccionario a Python. diccionario . La función ast.literal_eval analiza la cadena y crea un objeto de diccionario de Python con las mismas propiedades y valores. El objeto de diccionario resultante tiene un tipo de dict. Luego podemos acceder a las propiedades del objeto de diccionario usando la notación de acceso al diccionario estándar (por ejemplo, dict_obj[nombre]).
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))> |
>
módulos de resorte
>
Producción:
Initial string dictionary: {'name': 'John', 'age': 30, 'city': 'New York'} Final dictionary: {'name': 'John', 'age': 30, 'city': 'New York'}>