如果将我的JSON数据读取为List而不是Python Dictionary可以吗?

时间:2018-11-25 19:26:30

标签: python json parsing

全部

我是JSON和python世界的新手。我正在尝试解析位于here的JSON数据。我可以使用以下代码解析JSON数据。我的问题是,当我尝试检查“ jsonData”对象的类型时,原来是列表而不是Dictionary。我在网上看到的大多数JSON数据都由类型dictionary组成。因此,可以将list而不是Dictionary用作类型吗?还是我需要将'jsonData'对象转换为Dictionary,如果可以,该如何实现?

解析代码

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

预先感谢

1 个答案:

答案 0 :(得分:1)

欢迎来到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