NameError: el nombre 'null' o 'json' no está definido en Python | bobbyhadz (2024)

#Tabla de contenido

  1. NameError: el nombre 'null' no está definido en Python
  2. NameError: el nombre 'json' no está definido en Python
  3. NameError: el nombre 'verdadero' o 'falso' no está definido en Python

#NameError: el nombre 'null' no está definido en Python

El Python "NameError: el nombre 'null' no está definido" ocurre cuando usamosnuloen lugar deNingunoen Python o nos olvidamos de analizar los datos JSON en Pythonobjects nativos.

Para resolver el error, reemplace cualquier ocurrencia denuloconNingunoen tu código.

NameError: el nombre 'null' o 'json' no está definido en Python | bobbyhadz (1)

Aquí hay un ejemplo de cómo se produce el error.

principal.py

¡Copiado!

# ⛔️ NameError: el nombre 'null' no está definidovalor=nuloimprimir(valor)

#UsarNingunoen lugar denuloen pitón

Para solucionar el error, tenemos que usarNingunoen lugar denuloen Python.

principal.py

¡Copiado!

valor= Ningunoimprimir(valor) # 👉️ Ninguno

ElNingunoEl objeto se utiliza para representar la ausencia de un valor.

Asegúrese de reemplazar todas las apariciones denuloen tu código conNinguno.

#Analizando una cadena JSON en un objeto Python nativo

Si tiene una cadena JSON, debe analizarla en un objeto nativo de Python antes de acceder a propiedades específicas.

principal.py

¡Copiado!

importarjsonjson_str=json.deshecho({'nombre': Ninguno})imprimir(json_str) # 👉️ '{"nombre": nulo}'imprimir(tipo(json_str)) # 👉️ # ✅ Analizar cadena JSON a objeto Python nativonative_python_obj=json.cargas(json_str)imprimir(native_python_obj) # 👉️ {'nombre': Ninguno}imprimir(tipo(native_python_obj)) # 👉️ imprimir(native_python_obj['nombre']) # 👉️ Ninguno

NameError: el nombre 'null' o 'json' no está definido en Python | bobbyhadz (2)

usamos eljson.dumpsmétodo para serializar un objeto de Python en una cadena con formato JSON.

Darse cuenta deNingunose conviertenulocuando se convierte en una cadena JSON.

#Convertir un objeto de Python en una cadena JSON

Por el contrario, puede utilizar eljson.cargasmétodo para deserializar una cadena JSON a un objeto Python nativo.

Cuando analizamos una cadena JSON en un objeto de Python,nulolos valores se conviertenNinguno.

Si tiene una cadena JSON en su código, puede usar eljson.loads()método para convertirlo en un objeto de Python.

principal.py

¡Copiado!

importarjsonjson_str= r'''{"nombre": nulo, "edad": nulo}'''native_python_obj=json.cargas(json_str)imprimir(native_python_obj) # 👉️ {'nombre': ninguno, 'edad': ninguno}

NameError: el nombre 'null' o 'json' no está definido en Python | bobbyhadz (3)

Note que todosnulolos valores se conviertenNingunodespués de analizar la cadena JSON en Python nativo.

#Declarando unnulovariable en tu código

Alternativamente, puede declarar unnulovariable y asignarle un valor deNinguno.

principal.py

¡Copiado!

nulo= Ningunomi_dict= {"nombre":nulo, "edad":nulo}imprimir(mi_dict)

NameError: el nombre 'null' o 'json' no está definido en Python | bobbyhadz (4)

Sin embargo, tenga en cuenta que esta es una solución engañosa y puede resultar confusa para los lectores de su código.

#Analizando la respuesta delpeticionesmódulo

Si usas elpeticionesmódulo para realizar solicitudes HTTP, puede llamar aljson()en el objeto de respuesta para analizar la cadena JSON en un objeto de Python nativo.

principal.py

¡Copiado!

importarpeticionesdefinitivamente hacer un pedido():resolución=peticiones.conseguir('https://reqres.in/api/usuarios',se acabó el tiempo=10) imprimir(tipo(resolución)) # 👉️ # ✅ Analizar JSON a objeto Python nativoanalizado=resolución.json() imprimir(analizado) imprimir(tipo(analizado)) # 👉️ hacer un pedido()

Elresoluciónla variable es unaRespuestaobjeto que nos permite acceder a la información de la respuesta HTTP.

Podemos llamar aljson()método en elRespuestaobjeto para analizar la cadena JSON en un objeto nativo de Python que convertiría cualquiernulovalores a su equivalente de Python deNinguno.

#NameError: el nombre 'json' no está definido en Python

El Python "NameError: el nombre 'json' no está definido" ocurre cuando usamos eljsonmódulo sin importarlo primero.

Para solucionar el error, importe eljsonmódulo antes de usarlo -importar json.

NameError: el nombre 'null' o 'json' no está definido en Python | bobbyhadz (5)

Aquí hay un ejemplo de cómo se produce el error.

principal.py

¡Copiado!

# ⛔️ NameError: el nombre 'json' no está definidojson_str=json.deshecho({'nombre': 'Bobby Hadz', 'edad': 30})

Para solucionar el error, tenemos que importar eljsonmódulo.

principal.py

¡Copiado!

# ✅ importar json primeroimportarjsonjson_str=json.deshecho({'nombre': 'Bobby Hadz', 'edad': 29})imprimir(json_str) # 👉️ '{"nombre": "Bobby Hadz", "edad": 29}'imprimir(tipo(json_str)) # 👉️ native_python_obj=json.cargas(json_str)imprimir(native_python_obj) # 👉️ {'nombre': 'Bobby Hadz', 'edad': 29}imprimir(tipo(native_python_obj)) # 👉️

A pesar dejsonEl módulo está en la biblioteca estándar de Python, todavía tenemos que importarlo antes de usarlo.

Asegúrate de no haber usado una letra mayúsculajal importarjsonporque los nombres de los módulos distinguen entre mayúsculas y minúsculas.

#No importes eljsonmódulo en un ámbito anidado

Además, asegúrese de no haber importadojsonen un ámbito anidado, p. Una función.

principal.py

¡Copiado!

definitivamente get_json(): importarjson json_str=json.deshecho({'nombre': 'Bobby Hadz', 'edad': 29}) imprimir(json_str)# ⛔️ NameError: el nombre 'json' no está definidojson_str=json.deshecho({'nombre': 'Bobby Hadz', 'edad': 29})

Importamos eljsonmódulo en una función, por lo que no podemos usarlo fuera de la función.

Importe el módulo en el nivel superior para poder usarlo en todo su código.

principal.py

¡Copiado!

# ✅ movió la importación a la parte superior del archivoimportarjsondefinitivamente get_json():json_str=json.deshecho({'nombre': 'Bobby Hadz', 'edad': 29}) imprimir(json_str)json_str=json.deshecho({'nombre': 'Bobby Hadz', 'edad': 29})

La declaración de importación debe estar en la parte superior de su archivo, antes de cualquier línea que haga uso de lajsonmódulo.

#Asegúrese de no importar eljsonmódulo en una sentencia try/except

También debe importar eljsonmódulo en undeclaración de prueba/excepto.

principal.py

¡Copiado!

importarjsonintentar: # 👉️ código aquí podría generar un errorjson_str=json.deshecho({'nombre': 'Bobby Hadz', 'edad': 29}) imprimir(json_str)exceptoImportError:json_str=json.deshecho({'nombre': 'Bobby Hadz', 'edad': 29})json_str=json.deshecho({'nombre': 'Bobby Hadz', 'edad': 29})

Sin embargo, el ejemplo de código funciona si el código en elintentardeclaración plantea un error, lajsonel módulo no se importará con éxito.

Esto causaría el error porque estamos tratando de acceder a las propiedades en eljsonmódulo en el alcance exterior y elexceptobloquear.

#Importación de funciones específicas desde eljsonmódulo

Una alternativa a la importación de todo eljsonmódulo es importar solo las funciones y constantes que usa su código.

principal.py

¡Copiado!

dejsonimportardeshecho,cargasjson_str=deshecho({'nombre': 'Bobby Hadz', 'edad': 29})imprimir(json_str) # 👉️ '{"nombre": "Bobby Hadz", "edad": 29}'imprimir(tipo(json_str)) # 👉️ native_python_obj=cargas(json_str)imprimir(native_python_obj) # 👉️ {'nombre': 'Bobby Hadz', 'edad': 29}imprimir(tipo(native_python_obj)) # 👉️

El ejemplo muestra cómo importar sólo eldeshechoycargasfunciones desde eljsonmódulo.

En lugar de acceder a los miembros del módulo, p.json.cargas, ahora accedemos a ellos directamente.

Debe elegir cualquier enfoque que haga que su código sea más fácil de leer.

Por ejemplo, cuando usamos una importación comoimportar json, es mucho más difícil ver qué funciones de lajsonmódulo se están utilizando en el archivo.

Por el contrario, cuando importamos funciones específicas, es mucho más fácil ver qué funciones deljsonse está utilizando el módulo.

Sin embargo, lo más probable es que utilice sólo 2 funciones de lajsonmodulo-json.dumps()yjson.loads().

Eljson.dumpsLa función se utiliza para serializar un objeto de Python en una cadena con formato JSON.

Por el contrario, puede utilizar eljson.cargasfunción para deserializar una cadena JSON a un objeto nativo de Python.

Puede ver todas las funciones quejsonproporciona el módulo visitando eldocumentos oficiales.

#NameError: el nombre 'verdadero' o 'falso' no está definido en Python

El Python "NameError: el nombre 'verdadero' no está definido" ocurre cuando escribimos mal la palabra claveVerdadero.

Para resolver el error, asegúrese de escribir en mayúscula la primera letra de la palabra clave:Verdadero.

NameError: el nombre 'null' o 'json' no está definido en Python | bobbyhadz (6)

Aquí hay un ejemplo de cómo se produce el error.

principal.py

¡Copiado!

# ⛔️ NameError: el nombre 'verdadero' no está definido. ¿Quiso decir: 'Verdadero'?t=verdaderoimprimir(t)

También puede obtener el error cuando olvida escribir en mayúscula la letraFenFALSO.

principal.py

¡Copiado!

# ⛔️ NameError: el nombre 'falso' no está definido. ¿Quiso decir: 'falso'?F=FALSOimprimir(F)

NameError: el nombre 'null' o 'json' no está definido en Python | bobbyhadz (7)

#UsarVerdaderoyFALSOen Python (primera letra mayúscula)

Para solucionar el error, tenemos que usar una mayúsculaTal deletrear elVerdaderopalabra clave.

principal.py

¡Copiado!

t= Verdaderoimprimir(t) # Verdadero

Los nombres de variables, funciones, clases y palabras clave distinguen entre mayúsculas y minúsculas en Python.

El único otro disponiblevalor booleanoesFALSO(capitalF).

principal.py

¡Copiado!

t= Verdaderoimprimir(t) # 👉️ CiertoF= FALSOimprimir(F) # 👉️ Falso

Solo hay 2 valores booleanos:VerdaderoyFALSO.

El tipo de los dos valores booleanos es.

principal.py

¡Copiado!

imprimir(tipo(Verdadero)) # 👉️ imprimir(tipo(FALSO)) # 👉️

#Olvidarse de analizar datos JSON en objetos nativos de Python

El error también ocurre comúnmente cuando olvidamos analizar datos JSON en objetos nativePython.

Aquí hay un ejemplo de cómo se produce el error.

principal.py

¡Copiado!

# ⛔️ NameError: el nombre 'verdadero' no está definido. ¿Quiso decir: 'Verdadero'?json_str= {"está_suscrito":verdadero, "es_admin":verdadero}

Para resolver el error, reemplace cualquier ocurrencia deverdaderoconVerdaderoen tu código.

principal.py

¡Copiado!

json_str= {"está_suscrito": Verdadero, "es_admin": Verdadero}

Asegúrese de reemplazar todas las apariciones deverdaderoen tu código conVerdadero.

Haz lo mismo paraFALSO. Asegúrese de reemplazar todas las apariciones deFALSOen tu código conFALSO(primera letra mayúscula).

#Convertir una cadena JSON en un objeto de Python

Si está pegando una cadena JSON en su código de Python, enciérrela entre comillas y márquela como una cadena sin formato.

principal.py

¡Copiado!

importarjsonjson_str= r'''{"is_subscribed": true, "is_admin": true}'''# 👇️ convierte una cadena JSON en un objeto Python nativonative_python_obj=json.cargas(json_str)imprimir(native_python_obj) # 👉️ {'is_subscribed': Verdadero, 'is_admin': Verdadero}

usamos eljson.cargasmétodo para deserializar una cadena JSON a un objeto Python nativo.

Cuando analizamos una cadena JSON en un objeto de Python, todosverdaderolos valores se conviertenVerdadero.

Alternativamente, puede declarar unverdaderovariable y asignarle un valor deVerdadero.

principal.py

¡Copiado!

verdadero= Verdaderomi_dict= {"está_suscrito":verdadero, "es_admin":verdadero}

Sin embargo, tenga en cuenta que esta es una solución engañosa y puede resultar confusa para los lectores de su código.

#Convertir un objeto de Python en una cadena JSON

Puedes usar eljson.dumpspara serializar un objeto de Python en una cadena con formato JSON.

principal.py

¡Copiado!

importarjson# ✅ convertir objeto de Python a JSONjson_str=json.deshecho({"está_suscrito": Verdadero, "es_admin": Verdadero})imprimir(json_str) # 👉️ {"is_subscribed": verdadero, "is_admin": verdadero}imprimir(tipo(json_str)) # 👉️ # ✅ Analizar cadena JSON a objeto de Pythonnative_python_obj=json.cargas(json_str)imprimir(native_python_obj) # 👉️ {'is_subscribed': Verdadero, 'is_admin': Verdadero}imprimir(tipo(native_python_obj)) # 👉️

Darse cuenta deVerdaderose convierteverdaderocuando un objeto de Python se convierte en una cadena JSON.

Por el contrario, cuando analizamos la cadena JSON en un objeto Python nativo,verdaderose convierteVerdadero.

Objetos booleanosen Python se implementan como una subclase de enteros.

principal.py

¡Copiado!

imprimir(es instancia(Verdadero, En t)) # 👉️ Ciertoimprimir(es instancia(FALSO, En t)) # 👉️ Cierto

Convertir un valor booleano verdadero en un enterodevoluciones1, mientras que convertirFALSOdevoluciones0.

principal.py

¡Copiado!

imprimir(En t(Verdadero)) # 👉️ 1imprimir(En t(FALSO)) # 👉️ 0

Puedes usar elno(negación) operador para invertir un valor booleano.

principal.py

¡Copiado!

imprimir(no Verdadero) # 👉️ Falsoimprimir(no FALSO) # 👉️ Cierto

Puede utilizar el integradobooleano()función para convertir cualquier valor a un valor booleano.

principal.py

¡Copiado!

imprimir(bool(1)) # 👉️ Ciertoimprimir(bool('bobbyhadz.com')) # 👉️ Ciertoimprimir(bool('')) # 👉️ Falsoimprimir(bool(0)) # 👉️ Falso

Elbooleano()La función toma un valor y lo convierte en un valor booleano (Verdadero o Falso). Si el valor proporcionado es falso o se omite, entoncesbooldevolucionesFALSO, de lo contrario vuelveVerdadero.

Todos los valores que no son verdaderos se consideran falsos. Los valores falsos en Python son:

  • constantes definidas como falsas:NingunoyFALSO.
  • 0(cero) de cualquier tipo numérico
  • secuencias y colecciones vacías:""(cuerda vacía),()(tupla vacía),[](lista vacía),{}(diccionario vacío),colocar()(conjunto vacio),rango (0)(rango vacío).

Elbooleano()función devuelveVerdaderosi se pasa cualquier valor no falso.

NameError: el nombre 'null' o 'json' no está definido en Python | bobbyhadz (2024)

FAQs

How do I fix the NameError in Python? ›

To solve the NameError: name 'x' is not defined error in Python, you need to make sure that the variable is properly defined and assigned a value before it is used. The variable should also be referenced correctly, with the correct case and spelling.

How do I fix JSON parse error in Python? ›

There are 3 main ways to solve the error:
  1. Wrap the objects in an array.
  2. Set an array property on the object that contains the multiple objects.
  3. Iterate over the objects and parse each object.
Feb 17, 2023

How to avoid JSON KeyError in Python? ›

We can avoid KeyError by using get() function to access the key value. If the key is missing, None is returned. We can also specify a default value to return when the key is missing.

What is NameError name not defined in Python? ›

A NameError is raised when you try to use a variable or a function name that is not valid. In Python, code runs from top to bottom. This means that you cannot declare a variable after you try to use it in your code. Python would not know what you wanted the variable to do.

How do I fix import error in Python? ›

To fix an unresolved import error in Python, check the spelling of the import statement to ensure it is correct and capitalization matters. Verify if the package is installed using `pip list` or `pip show package_name`, then install it with `pip install package_name`.

How do I fix Python modules? ›

Programming Guide
  1. Check the spelling and case sensitivity of your import statement. ...
  2. Verify that the module is correctly installed. ...
  3. Ensure the module is in the correct location. ...
  4. Check for circular imports. ...
  5. Check for issues with __init__.py files.
Mar 17, 2023

How do I fix a JSON error? ›

Here's how:
  1. Connect to your server using an FTP client or cPanel File Manager.
  2. Find your . ...
  3. Download a copy of the file to your computer as a backup (just in case).
  4. Delete the file from your server.
  5. Go to Settings → Permalinks in your WordPress dashboard and click Save Changes. ...
  6. Check if the problem is fixed.
Jan 13, 2022

How do I fix corrupted JSON files? ›

Restoring JSON Files
  1. Unzip your most recent archive. This will most likely be named with its backup date.
  2. Stop the mail service.
  3. Copy the archived JSON file.
  4. Delete the corrupted JSON file.
  5. Paste the archived JSON to replace the corrupted file.
  6. Restart the mail service.
Sep 22, 2020

How to fix JSON data? ›

So making plain JavaScript or Python objects valid JSON requires a conversion step:
  1. enclose all keys with double quotes, and replace single quotes with double quotes. ...
  2. replace Python constants None, True, and False with null, true, and false.
  3. Strip trailing commas.
  4. Strip comments like /* ...
Nov 16, 2022

How to easily parse JSON in Python? ›

If you have a JSON string, you can parse it by using the json. loads() method. The result will be a Python dictionary.

How to validate a JSON file Python? ›

Validate JSON Schema using Python
  1. First, install jsonschema using pip command. pip install jsonschema.
  2. Define Schema: Describe what kind of JSON you expect.
  3. Convert JSON to Python Object using json. load or json. ...
  4. Pass resultant JSON to validate() method of a jsonschema .
May 14, 2021

How to deal with JSON file in Python? ›

json file using the read_json.py script, we:
  1. Import the json module.
  2. Open test. json using the open() built-in function.
  3. Load the JSON object inside the test. json file using the json. load() function.
  4. Print out the values of the JSON object inside the test. json file.

Why do we use if __ name __ == '__ main __' in Python? ›

Python files can act as either reusable modules, or as standalone programs. if __name__ == “main”: is used to execute some code only if the file was run directly, and not imported.

How do you check if a name is defined in Python? ›

To check if the variable is defined in a local scope, you can use the locals() function, which returns a dictionary representing the current local symbol table. if 'x' in locals(): print('Variable exist. ')

Why is __ file __ not defined? ›

If you run it from a Python shell, then __file__ is not defined unless you import the code as a module.

What is a NameError in Python? ›

What Is a NameError in Python? In Python, the NameError occurs when you try to use a variable, function, or module that doesn't exist or wasn't used in a valid way. Some of the common mistakes that cause this error are: Using a variable or function name that is yet to be defined.

How do I resolve memory problems in Python? ›

Ways to Handle Python Memory Error and Large Data Files
  1. Allocate More Memory.
  2. Work with a Smaller Sample.
  3. Use a Computer with More Memory.
  4. Use a Relational Database.
  5. Use a Big Data Platform.
Apr 18, 2022

References

Top Articles
Latest Posts
Article information

Author: Edmund Hettinger DC

Last Updated:

Views: 6260

Rating: 4.8 / 5 (78 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Edmund Hettinger DC

Birthday: 1994-08-17

Address: 2033 Gerhold Pine, Port Jocelyn, VA 12101-5654

Phone: +8524399971620

Job: Central Manufacturing Supervisor

Hobby: Jogging, Metalworking, Tai chi, Shopping, Puzzles, Rock climbing, Crocheting

Introduction: My name is Edmund Hettinger DC, I am a adventurous, colorful, gifted, determined, precious, open, colorful person who loves writing and wants to share my knowledge and understanding with you.