#python #json #pandas
Вопрос:
import pandas as pd
url = "https://api.reserve.albertaparks.ca/api/public/campgrounds/62/availability?campingType=campsite"
"amp;arrivalDt=01-Aug-2021amp;departureDt=13-Aug-2021amp;unitSize=40amp;siteType=VEH"
result = pd.read_json(url)
print(result)
df = pd.DataFrame(result)
df = df[df['available']]
df.set_index('date', inplace=True)
print(df)
Я пытаюсь возвращать только результаты, где «доступно» = True, и форматировать результаты, как показано ниже, без таблицы. Вероятно, используя таблицу, но не уверен.
Дата | Доступно | fcfs |
---|---|---|
01-Авг-2021 | Правда | Ложный |
02-Авг-2021 | Правда | Ложный |
03-Авг-2021 | Правда | Ложный |
04-Авг-2021 | Правда | Ложный |
Ответ №1:
result = pd.read_json(url)
df = pd.DataFrame.from_records(result['availability'])
df = df.loc[lambda x: x['available']].set_index("date")
print(df) # or tabulate(df)
Ответ №2:
вы можете использовать json_normalize
пакет from pandas, а затем использовать обычную фильтрацию
df1 = pd.json_normalize(df.availability)
df2 = df1[df1['available']==True]
date available fcfs
1 02-Aug-2021 True False
2 03-Aug-2021 True False
3 04-Aug-2021 True False
4 05-Aug-2021 True False
5 06-Aug-2021 True False
7 08-Aug-2021 True False
8 09-Aug-2021 True False
9 10-Aug-2021 True False
10 11-Aug-2021 True False
11 12-Aug-2021 True False
Комментарии:
1. можно ли запускать этот код каждые 5 минут и печатать только результаты изменений?