python - 如果我的 JSON 数据被读取为列表而不是 Python 字典,可以吗?

标签 python json parsing

全部,

我是 JSON 和 python 世界的新手。我正在尝试解析位于 here 的 JSON 数据。我能够使用下面的代码解析 JSON 数据。我的问题是,当我尝试检查“jsonData”对象的类型时,结果发现它是一个列表而不是Dictionary。我在网上看到的大多数 JSON 数据都是由 dictionary 类型组成的。那么可以使用 list 作为类型而不是 Dictionary 吗?或者我是否需要将我的“jsonData”对象转换为字典,如果是的话我该如何实现它?

解析代码

response=urllib.request.urlopen(url)
json_string=response.read().decode('utf-8')
parsed_json=json.loads(json_string)
jsonData =parsed_json

提前致谢,

最佳答案

欢迎来到 JSON 和 Python 世界。首先,您可以发出 HTTP 请求并以更少的行解析响应:

# We will use requests library instead of urllib. See Ref. 1.
import requests

url = 'http://api.population.io/1.0/population/2010/United%20States/?format=json'
response = requests.get(url) # Make an HTTP GET request
jsonData = response.json() # Read the response data in JSON format

print(type(jsonData)) # prints <type 'list'>

for x in jsonData:
    print(type(x)) # prints <type 'dict'>

为什么说jsonData是一个列表?因为 jsonData 是一个列表。
为什么说每个x都是一个字典?因为每个x都是一个字典。

仔细查看位于 here 的数据。它分别以 [] 开始和结束。在[]内部,有成对的{}

list = [] # this is how you declare lists in python
dict = {} # this is how you declare dictionaries in python

因此,您的 JSON 数据已被正确解析。它是 JSON 对象的 JSON 列表。参见引用文献。 2.

引用文献:

  1. What are the differences between the urllib, urllib2, and requests module?
  2. https://www.json.org

关于python - 如果我的 JSON 数据被读取为列表而不是 Python 字典,可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53471051/

相关文章:

python - 如何添加到jupyter lab中的pythonpath

javascript - 如何将数据从服务器传递到页面

PHP 解析器 - 复制下一行(?)

java - 使用递归正则表达式在 Java 中进行词法分析

python - python和mysql命令行中的mysql插入错误

python - 如何定义基本的 Python 结构?

python - 使用 functools.wraps 装饰器尝试类的每个函数

jquery - jQuery 自动完成插件的数据源

java - json官方java api : JSONArray of JSONObjects

ios - 为什么我安装的所有应用程序都没有显示在 iOS 版 Parse.com 中?