Skip to content

Instantly share code, notes, and snippets.

@yujiterada
Created February 2, 2020 22:55
Show Gist options
  • Select an option

  • Save yujiterada/08b3180ffdeb98ac65c8aa643ff68872 to your computer and use it in GitHub Desktop.

Select an option

Save yujiterada/08b3180ffdeb98ac65c8aa643ff68872 to your computer and use it in GitHub Desktop.
Dump Meraki Event Logs to CSV
import requests
import json
import pandas as pd
import os
import urllib
API_KEY = os.environ.get('MERAKI_API_KEY')
NETWORK_ID = os.environ.get('MERAKI_NETWORK_ID')
PATH_TO_SAVE = '/Users/Yuji.Terada/Desktop'
FILENAME = 'test.csv'
NUM_OF_RESULTS = 2000
if NUM_OF_RESULTS > 1000:
per_page = 1000
iteration = round(NUM_OF_RESULTS/per_page)
else:
per_page = NUM_OF_RESULTS
iteration = 1
events = []
ending_before = None
headers = {
'X-Cisco-Meraki-API-Key': API_KEY,
}
for i in range(0, iteration):
if i == 0:
parameters = (
('productType', 'wireless'),
('perPage', per_page),
)
else:
parameters = (
('productType', 'wireless'),
('perPage', per_page),
('endingBefore', ending_before)
)
url = "https://api.meraki.com/api/v0/networks/" + NETWORK_ID + "/events?" + urllib.parse.urlencode(parameters)
try:
response = requests.request("GET", url, headers=headers)
result = json.loads(response.text)
events += result['events']
ending_before = result['pageStartAt']
except Exception as e:
print('error: {}'.format(e))
df = pd.read_json(json.dumps(events))
export_csv = df.to_csv(PATH_TO_SAVE + '/' + FILENAME, index = None, header=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment