全部,
我是 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.
引用文献:
关于python - 如果我的 JSON 数据被读取为列表而不是 Python 字典,可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53471051/