49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
# https://api.data.gov.hk/v1/carpark-info-vacancy?data=vacancy&vehicleTypes=privateCar
|
|
import requests
|
|
from pprint import pprint
|
|
|
|
url = "https://api.data.gov.hk/v1/carpark-info-vacancy"
|
|
params = {
|
|
"data": "vacancy",
|
|
"vehicleTypes": "privateCar"
|
|
}
|
|
|
|
response = requests.get(url, params=params)
|
|
js_result = response.json()['results']
|
|
|
|
output = []
|
|
for js_row in js_result:
|
|
if ((type(js_row.get('privateCar')) == type([]) ) and len(js_row.get('privateCar'))> 0):
|
|
if (js_row.get('privateCar')[0].get("vacancy_type",'-')== "A"):
|
|
output.append(js_row)
|
|
|
|
test_json = [{
|
|
'park_Id': '10',
|
|
'privateCar': [{
|
|
'vacancy_type': 'A',
|
|
'vacancy': 29,
|
|
'lastupdate': '2024-10-18 16:04:59'
|
|
}]
|
|
}]
|
|
|
|
import pandas as pd
|
|
|
|
# Create a DataFrame from the test_json
|
|
df = pd.json_normalize(test_json, record_path=['privateCar'], meta='park_Id')
|
|
|
|
|
|
# Extract the 'vacancy' column and flatten it
|
|
vacancy_df = df[['park_Id', 'vacancy']]
|
|
|
|
print(vacancy_df)
|
|
|
|
|
|
pprint(output[0])
|
|
pprint("length of json: "+str(len(output)))
|
|
|
|
import json
|
|
|
|
# Store output into task3_output.json
|
|
with open('task3_output.json', 'w') as outfile:
|
|
json.dump(output, outfile, indent=2)
|