NameError:名称“json”未在 Python 中定义
NameError: name ‘json’ is not defined in Python
Python“NameError: name ‘json’ is not defined”发生在我们使用
json
模块而不先导入它时。要解决错误,请json
在使用之前导入模块 – import 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'>
该示例显示了如何仅从模块导入dumps
和loads
函数
。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
。