遍历JSON文件以查看Python中是否存在数字“ 2017”

时间:2018-11-29 16:08:29

标签: python json

我试图将JSON文件放入数组中,但前提是键issue_date的值包含数字2017。这是来自以下API:https://data.cityofnewyork.us/resource/ati4-9cgt.json,其中包含罚单。

我只希望数组中包含2017年的日期,这样以后我就可以将其拆分为几个月。

我该怎么做?

谢谢!另外,我是大学一年级的学生,所以我的知识非常有限。如果您使用的是相当复杂的内容,请介意解释一下,以便我理解代码在做什么/意味着什么?谢谢!

2 个答案:

答案 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)