Skip to content

Instantly share code, notes, and snippets.

@nygeog
Created March 13, 2017 21:12
Show Gist options
  • Save nygeog/0b668d17182cc7eb6529ebc9bd33f2cd to your computer and use it in GitHub Desktop.
Save nygeog/0b668d17182cc7eb6529ebc9bd33f2cd to your computer and use it in GitHub Desktop.
import json
inFileName = 'data/cartojsontest1.carto.json'
ouFileName = 'data/cartojsontest1_change_zoom10.carto.json'
newMapName = 'THIS IS A TEST10'
zoomLevel = 12
lat = '40.7127'
lng = '-75.0059'
oldDatasetName = 'infogroup_bus_2012_is_mcdonalds'
newDatasetName = 'infogroup_bus_2012_like_exxon'
with open(inFileName) as json_data:
data = json.load(json_data)
def renameMap(data, mapName):
data['visualization']['name'] = mapName
return data
def replaceDataset(data,oldDatasetName,newDatasetName):
"""Some of the fields are:
data['visualization']['analyses'][0]['analysis_definition']['options']['table_name'] = (data['visualization']['analyses'][0]['analysis_definition']['options']['table_name']).replace(oldDatasetName,newDatasetName) #u'"sheehan-carto".infogroup_bus_2012_is_mcdonalds'
data['visualization']['layers'][1]['options']['query'] = (data['visualization']['layers'][1]['options']['query']).replace(oldDatasetName,newDatasetName) #u'SELECT * FROM "sheehan-carto".infogroup_bus_2012_is_mcdonalds'
data['visualization']['analyses'][0]['analysis_definition']['params']['query'] = (data['visualization']['analyses'][0]['analysis_definition']['params']['query']).replace(oldDatasetName,newDatasetName)
data['visualization']['layers'][1]['options']['sql_history'] = (data['visualization']['layers'][1]['options']['sql_history']).replace(oldDatasetName,newDatasetName) #[u'SELECT * FROM "sheehan-carto".infogroup_bus_2012_is_mcdonalds']
"""
# stringJSON = json.dumps(data).replace('infogroup_bus_2012_is_mcdonalds','infogroup_bus_2012_like_exxon')
# data = json.loads(stringJSON)
data = json.loads(json.dumps(data).replace('infogroup_bus_2012_is_mcdonalds','infogroup_bus_2012_like_exxon'))
return data
def removeBoundings(data):
# data['visualization']['map']['view_bounds_ne'] = [None,None]
# data['visualization']['map']['view_bounds_sw'] = [None,None]
# data['visualization']['map']['bounding_box_ne'] = [None,None]
# data['visualization']['map']['bounding_box_sw'] = [None,None]
# data['visualization']['state']['json']['map']['ne'] = [None,None]
# data['visualization']['state']['json']['map']['sw'] = [None,None]
return data
def replaceMapCenter(data,latitude,longitude):
data['visualization']['map']['center'] = '[%s,%s]' % (latitude,longitude)
return data
def replaceZoomLevel(data,zoomLevel):
if 1 <= zoomLevel <= 18:
data['visualization']['map']['zoom'] = str(zoomLevel)
return data
else:
print 'error'
data = renameMap(data, newMapName)
data = removeBoundings(data)
data = replaceMapCenter(data,lat,lng)
data = replaceZoomLevel(data,zoomLevel)
data = replaceDataset(data,oldDatasetName,newDatasetName)
with open(ouFileName, 'w') as outfile:
json.dump(data, outfile)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment