Skip to content

Instantly share code, notes, and snippets.

@RobinL
Created February 10, 2019 11:31
Show Gist options
  • Save RobinL/cf029c23fefdf183ae507ea5205298dc to your computer and use it in GitHub Desktop.
Save RobinL/cf029c23fefdf183ae507ea5205298dc to your computer and use it in GitHub Desktop.
import requests
import json
import pandas as pd
from io import StringIO
import time
url = "https://api.beta.ons.gov.uk/v1/filters?submitted=true"
ages = range(0,90)
ages = [str(a) for a in ages]
years = [2015,2016,2017]
years = [str(y) for y in years]
post = {
"dataset": {
"id": "mid-year-pop-est",
"edition": "time-series",
"version": 4
},
"dimensions": [
{
"name": "sex",
"options": [
"1", "2"
]},
{"name": "age",
"options": ages},
{"name": "time",
"options": years}
]
}
post_data = json.dumps(post)
r1 = requests.post(url = url, data = post_data) #works
filter_meta = json.loads(r1.text)
csv_location = filter_meta["links"]["filter_output"]["href"]
output_url = filter_meta['links']['filter_output']['href']
time.sleep(1)
r = requests.get(output_url)
filter_output_meta = json.loads(r.text)
print(filter_output_meta)
csv_location = filter_output_meta['downloads']['csv']['href']
# r = requests.get(csv_location)
# df = pd.read_csv(StringIO(text))
# df
import requests
import json
import pandas as pd
from io import StringIO
import time
url = "https://api.beta.ons.gov.uk/v1/filters?submitted=true"
ages = range(0,90)
ages = [str(a) for a in ages]
years = [2015,2016,2017]
years = [str(y) for y in years]
post = {
"dataset": {
"id": "mid-year-pop-est",
"edition": "time-series",
"version": 4
},
"dimensions": [
{
"name": "sex",
"options": [
"1", "2"
]},
{"name": "age",
"options": ages},
{"name": "time",
"options": years},
{"name": "geography",
"options": ["E06000002"]},
]
}
post_data = json.dumps(post)
r1 = requests.post(url = url, data = post_data) #works
filter_meta = json.loads(r1.text)
csv_location = filter_meta["links"]["filter_output"]["href"]
output_url = filter_meta['links']['filter_output']['href']
time.sleep(1)
r = requests.get(output_url)
filter_output_meta = json.loads(r.text)
print(filter_output_meta)
csv_location = filter_output_meta['downloads']['csv']['href']
# r = requests.get(csv_location)
# df = pd.read_csv(StringIO(text))
# df
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment