首先,这是我的第一篇文章,并且我是一个菜鸟,尝试学习一些Python,因为我想查看#可用的露营地,并且希望编写自己的程序,然后使用一些付费网站。下面是我的代码#,它打印以下显示的结果。我只想打印“可用性”:如果显示“可用”而不是“保留”。
谢谢高级
import json
import urllib.request
import time
# download raw json object
url = "https://www.recreation.gov/api/camps/availability/campground/233116/month?start_date=2020-09-01T00%3A00%3A00.000Z"
data = urllib.request.urlopen(url).read().decode()
# parse json object
obj = json.loads(data)
print(json.dumps(obj, indent=1))
{
"campsites": {
"90041": {
"availabilities": {
"2020-09-01T00:00:00Z": "Reserved",
"2020-09-02T00:00:00Z": "Reserved",
"2020-09-03T00:00:00Z": "Reserved",
"2020-09-04T00:00:00Z": "Reserved",
"2020-09-05T00:00:00Z": "Reserved",
"2020-09-06T00:00:00Z": "Reserved",
"2020-09-07T00:00:00Z": "Reserved",
"2020-09-08T00:00:00Z": "Reserved",
"2020-09-09T00:00:00Z": "Reserved",
"2020-09-10T00:00:00Z": "Reserved",
"2020-09-11T00:00:00Z": "Reserved",
"2020-09-12T00:00:00Z": "Reserved",
"2020-09-13T00:00:00Z": "Reserved",
"2020-09-14T00:00:00Z": "Reserved",
"2020-09-15T00:00:00Z": "Reserved",
"2020-09-16T00:00:00Z": "Reserved",
"2020-09-17T00:00:00Z": "Reserved",
"2020-09-18T00:00:00Z": "Reserved",
"2020-09-19T00:00:00Z": "Reserved",
"2020-09-20T00:00:00Z": "Reserved",
"2020-09-21T00:00:00Z": "Reserved",
"2020-09-22T00:00:00Z": "Reserved",
"2020-09-23T00:00:00Z": "Reserved",
"2020-09-24T00:00:00Z": "Reserved",
"2020-09-25T00:00:00Z": "Reserved",
"2020-09-26T00:00:00Z": "Reserved",
"2020-09-27T00:00:00Z": "Reserved",
"2020-09-28T00:00:00Z": "Reserved",
"2020-09-29T00:00:00Z": "Reserved",
"2020-09-30T00:00:00Z": "Reserved"
},
"campsite_id": "90041",
"campsite_reserve_type": "Site-Specific",
"campsite_type": "STANDARD NONELECTRIC",
"capacity_rating": "",
"loop": "KIRK CREEK CAMPGROUND",
"max_num_people": 8,
"min_num_people": 1,
"quantities": null,
"site": "030",
"type_of_use": "Overnight"
},
您在这里有几种可能。我认为一个简单的解决方案是obj
通过简单地删除not的条目来对数据进行处理"Available"
。这是一个为您提供相同数据,仅过滤可用性的解决方案:
from copy import deepcopy
result = deepcopy(obj)
for campsite, info in obj["campsites"].items():
for day, availability in info["availabilities"].items():
if availability != "Available":
del result["campsites"][campsite]["availabilities"][day]
print(json.dumps(result, indent=1))
如果您需要其他数据结构,我希望您有所了解。
迭代对象时进行修改可能会导致一些麻烦。这就是为什么我为您创建了一个深拷贝(没有引用)的原因obj
。当然,您必须转储result
而不是obj
。
对于您给定的数据,我再也找不到可用的日期。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句