使用json时,为什么要使用json.loads

  • 本文关键字:json loads 使用 python json
  • 更新时间 :
  • 英文 :


这不是我遇到的错误,但我想知道以下原因:

例如,在教程页面中,我们有

json_string = """
{
"researcher": {
"name": "Ford Prefect",
"species": "Betelgeusian",
"relatives": [
{
"name": "Zaphod Beeblebrox",
"species": "Betelgeusian"
}
]
}
}
"""
data = json.loads(json_string)

这是可以的,但我的问题是,当可以获得相同的东西时,为什么要把json作为字符串,然后调用json.loads

otro={
"researcher": {
"name": "Ford Prefect",
"species": "Betelgeusian",
"relatives": [
{
"name": "Zaphod Beeblebrox",
"species": "Betelgeusian"
}
]
}
}
print(type(otro))
print(otro)
print(otro==data) #True

因为第二个例子根本不是JSON,所以它是Python。它们有表面上的相似之处,但你把它们混合在一起只是在迷惑自己。

例如,值NoneTrueFalse在Python中有效,但在JSON中无效,它们将分别用nulltruefalse表示。另一个区别是Unicode字符的表示方式。显然,还有许多Python构造根本无法用JSON表示。

在实践中使用哪个取决于您的用例。如果您正在练习或测试需要处理实际JSON输入的代码,那么显然可以将其传递给JSON,而不是其他东西。您引用的示例显然是试图演示如何使用Python中的JSON函数,而将示例数据嵌入字符串只是为了使示例自给自足,而实际上您可能会从文件或网络API接收数据。

最新更新