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

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

NameError: name ‘true’ is not defined in Python

当我们拼错关键字时,会出现 Python “NameError: name ‘true’ is not defined” True

要解决该错误,请确保将关键字 – 的首字母大写
True

nameerror 名称 true 未定义

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

主程序
# ⛔️ NameError: name 'true' is not defined. Did you mean: 'True'? t = true print(t)

T为了解决这个错误,我们必须在拼写True
关键字时
使用大写字母。

主程序
t = True print(t) # True

变量、函数、类和关键字的名称在 Python 中区分大小写。

唯一可用的
布尔值
False(capital F)。

主程序
t = True print(t) # 👉️ True f = False print(f) # 👉️ False
只有 2 个布尔值 –TrueFalse

两个布尔值的类型是<class 'bool'>.

主程序
print(type(True)) # 👉️ <class 'bool'> print(type(False)) # 👉️ <class 'bool'>

当我们忘记将 JSON 数据解析为本机 Python 对象时,也会经常发生该错误。

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

主程序
# ⛔️ NameError: name 'true' is not defined. Did you mean: 'True'? json_str = {"is_subscribed": true, "is_admin": true}

要解决该错误,请在您的代码中替换所有出现的truewith 。True

主程序
json_str = {"is_subscribed": True, "is_admin": True}
true确保将代码中所有出现的 替换为. True

如果您要将 JSON 字符串粘贴到 Python 代码中,请将其用引号引起来并将其标记为原始字符串。

主程序
import json json_str = r'''{"is_subscribed": true, "is_admin": true}''' # 👇️ convert JSON string to native Python object native_python_obj = json.loads(json_str) print(native_python_obj) # 👉️ {'is_subscribed': True, 'is_admin': True}

我们使用json.loads
方法将 JSON 字符串反序列化为本机 Python 对象。

当我们将 JSON 字符串解析为 Python 对象时,所有true值都变为
True.

或者,您可以声明一个true变量并为其赋值
True.

主程序
true = True my_dict = {"is_subscribed": true, "is_admin": true}

但是,请注意,这是一个 hacky 解决方案,可能会让代码的读者感到困惑。

您可以使用
json.dumps方法将 Python 对象序列化为 JSON 格式的字符串。

主程序
import json # ✅ convert Python object to JSON json_str = json.dumps({"is_subscribed": True, "is_admin": True}) print(json_str) # 👉️ {"is_subscribed": true, "is_admin": true} print(type(json_str)) # 👉️ <class 'str'> # ✅ Parse JSON string to Python object native_python_obj = json.loads(json_str) print(native_python_obj) # 👉️ {'is_subscribed': True, 'is_admin': True} print(type(native_python_obj)) # 👉️ <class 'dict'>

请注意,TruetruePython 对象转换为 JSON 字符串时会变成这样。

相反,当我们将 JSON 字符串解析为原生 Python 对象时,true
就变成了
True.

如果您使用requests模块发出 HTTP 请求,您可以调用json()响应对象上的方法将 JSON 字符串解析为本机 Python 对象。

主程序
import requests def make_request(): res = requests.get('https://reqres.in/api/users') print(type(res)) # 👉️ <class 'requests.models.Response'> # ✅ Parse JSON to native Python object parsed = res.json() print(parsed) print(type(parsed)) # 👉️ <class 'dict'> make_request()

The res variable is a Response object that allows us to access information
from the HTTP response.

We can call the json() method on the Response object to parse the JSON
string into a native Python object which would convert any true values to
their Python equivalent of True.

Boolean objects in Python are
implemented as a subclass of integers.

main.py
print(isinstance(True, int)) # 👉️ True print(isinstance(False, int)) # 👉️ True

Converting a True boolean value to an integer returns 1, whereas converting
False returns 0.

main.py
print(int(True)) # 👉️ 1 print(int(False)) # 👉️ 0

You can use the not (negation) operator to invert a boolean value.

main.py
print(not True) # 👉️ False print(not False) # 👉️ True

You can use the built-in bool() function to convert any value to a boolean.

main.py
print(bool(1)) # 👉️ True print(bool('hello world')) # 👉️ True print(bool('')) # 👉️ False print(bool(0)) # 👉️ False

The bool() function
takes a value and converts it to a boolean (True or False). If the provided
value is falsy or omitted, then bool returns False, otherwise it returns
True.

All values that are not truthy are considered falsy. The falsy values in Python
are:

  • constants defined to be falsy: None and False.
  • 0 (zero) of any numeric type
  • empty sequences and collections: "" (empty string), () (empty tuple), []
    (empty list), {} (empty dictionary), set() (empty set), range(0) (empty
    range).

The bool() function returns True if passed any non-falsy value.

Conclusion #

当我们拼错关键字时,会出现 Python “NameError: name ‘true’ is not defined” True

要解决该错误,请确保将关键字 – 的首字母大写
True