我试图将JSON文件放入数组中,但前提是键issue_date
的值包含数字2017
。这是来自以下API:https://data.cityofnewyork.us/resource/ati4-9cgt.json,其中包含罚单。
我只希望数组中包含2017年的日期,这样以后我就可以将其拆分为几个月。
我该怎么做?
谢谢!另外,我是大学一年级的学生,所以我的知识非常有限。如果您使用的是相当复杂的内容,请介意解释一下,以便我理解代码在做什么/意味着什么?谢谢!
答案 0 :(得分:3)
这是学习如何解析JSON的一个很好的例子。
您可以通过以下链接获得帮助:json guide
您要做的第一件事就是导入json库:
import json
然后,您必须下载链接的json文件,并将其存储在脚本存储的目录中。使用此文件将其加载到程序中:
with open('jsonFileName.json', 'r') as file:
json_data = json.loads(file.read())
了解文件处理here
现在遍历json并获取所需的内容。您只想获取发布日期为2017年的记录。您将需要遍历包含所有json数据的整个json_data
变量。
for i in data:
由于这是一个简单的json文件,因此找到issue_date
很简单。尝试以下操作以获取所有发布日期:
print(i["issue_date"])
这将在json文件中打印所有发行日期。但是,您只需要2017年,因此必须进行一些字符串操作。在这种情况下,您要检查发布日期的前四个字符或直到出现连字符-
为止。您可以在此处使用string.split()函数。
if i["issue_date"].split("-")[0] == "2017"
[0]
会在第一个连字符-
出现之前抓取任何内容。然后我们检查-
之前的值是否等于“ 2017”。
现在,如果您想要整个记录,只需在i
之后使用if condition
即可对它们进行处理。
答案 1 :(得分:0)
您的JSON看起来像是其中包含一堆字典的数组。 将JSON加载到数组中。让我们称该数组为JSON
parkingTickets2017 = []
for x in loadedJSON: # x will be a dictionary of some parking ticket
if x["issue-date"].startswith('2017'):
parkingTickets2017.append(x)