【问题标题】:Why does json.load() return a LIST type [closed]为什么 json.load() 返回 LIST 类型
【发布时间】:2022-01-21 02:30:59
【问题描述】:

我正在关注一本书并学习python,并且我有以下代码:

import json

with open("books.json", "rt") as file:
    books = json.load(file)
    
print(books)

print(type(books))

可以在此处找到 JSON 文件:

https://raw.githubusercontent.com/PacktPublishing/Learning-Python-Networking-Second-Edition/master/Chapter03/json/books.json

根据本书,我的代码应该打印类型<class 'dict'>,但打印的是<class 'list'>

你知道这是为什么吗?这是这种情况下的预期行为吗?谢谢。我测试了文件中只有一个字典,而不是 2 个,并且仍然获得 LIST 类型。

编辑:使用 python 3.9.4

【问题讨论】:

  • 数据一个列表,因为它包含在[]中。不过,此列表中有多个 dicts。
  • load 返回从文件中解码的任何内容。并非每个 JSON 值都是对象。
  • 即使只是[] 也是一个列表——里面有多少东西并不重要,所以从一个包含两件事的列表到一个包含一件事的列表没有区别。跨度>
  • 不幸的是,Packt 在我的圈子中并不以拥有好的内容而闻名。今年早些时候我买了他们不起眼的包裹,并被告知要对他们所说的很多话持保留态度。

标签: python json


【解决方案1】:

发生这种情况,因为它是一个字典元素列表,试试这个:

print(type (books[0]))

【讨论】:

  • 是的,已经尝试过并且正在获取特定项目的字典,我假设这本书没有提供正确的信息,或者我有一些过时的东西;谢谢大家的确认,因为这让我发疯了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-03
  • 2020-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-29
相关资源
最近更新 更多