NameError:名称“json”未在 Python 中定义

NameError:名称“json”未在 Python 中定义

NameError: name ‘json’ is not defined in Python

Python“NameError: name ‘json’ is not defined”发生在我们使用
json模块而不先导入它时。要解决错误,请json
在使用之前导入模块 –
import json

nameerror 名称 json 未定义

下面是错误如何发生的示例。

主程序
# ⛔️ NameError: name 'json' is not defined json_str = json.dumps({'name': 'Alice', 'age': 30})

为了解决错误,我们必须导入
json模块。

主程序
# ✅ import json first import json json_str = json.dumps({'name': 'Alice', 'age': 29}) print(json_str) # 👉️ '{"name": "Alice", "age": 29}' print(type(json_str)) # 👉️ <class 'str'> native_python_obj = json.loads(json_str) print(native_python_obj) # 👉️ {'name': 'Alice', 'age': 29} print(type(native_python_obj)) # 👉️ <class 'dict'>

即使该json模块在 Python 标准库中,我们仍然需要在使用前导入它。

j确保在导入时没有使用大写字母,因为模块名称区分大小写。 json

另外,请确保您没有导入json嵌套范围,例如函数。在顶层导入模块,以便能够在整个代码中使用它。

导入整个json模块的替代方法是仅导入您的代码使用的函数和常量。

主程序
from json import dumps, loads json_str = dumps({'name': 'Alice', 'age': 29}) print(json_str) # 👉️ '{"name": "Alice", "age": 29}' print(type(json_str)) # 👉️ <class 'str'> native_python_obj = loads(json_str) print(native_python_obj) # 👉️ {'name': 'Alice', 'age': 29} print(type(native_python_obj)) # 👉️ <class 'dict'>

该示例显示了如何仅从模块导入dumpsloads函数
json

例如json.loads,我们现在直接访问它们,而不是访问模块上的成员。

您应该选择使您的代码更易于阅读的方法。

例如,当我们使用诸如 之类的导入时import json,很难看出json文件中使用了模块中的哪些函数。

相反,当我们导入特定的函数时,更容易看出json正在使用模块中的哪些函数。

但是,您很可能只使用json模块中的 2 个函数 –
json.dumps()json.loads().

json.dumps
函数用于将 Python 对象序列化为 JSON 格式的字符串

相反,您可以使用
json.loads函数将 JSON 字符串反序列化为本机 Python 对象。

您可以访问官方文档json查看该模块提供的
所有功能

结论

Python“NameError: name ‘json’ is not defined”发生在我们使用
json模块而不先导入它时。要解决错误,请json
在使用之前导入模块 –
import json