Hi,
I need to update a csv item in an ArcGIS Online Organization. For some reasones I need to do it without using arcgis python module.
The idea is basically to generate a token and update the item by using the python requests library (or urllib). Somehow I cannot make it work with the requests lib.
Help is appreciated!
Thanks in advance folks 🙂
token = arcpy.GetSigninToken()
url="https://myorganization.arcgis.com/sharing/rest/content/users/username/9d0a35bf33c24f289e626b51f9asdf4578/items/123456782345678itemId/update"
payload={
'description': 'Rest Test',
'overwrite': 'true',
'async': 'true',
'token': token['token'],
'title': 'RestTestFile',
'name': 'RestTestFile.csv',
'type': 'CSV',
'tags': 'RestTest',
'typeKeywords': 'CSV'}
files={
'file': ('RestTestFile.csv', open(file_path_variable,'rb'), 'text/csv')
}
# two kinds of requests with requests library
response = requests.request("POST", url, data=payload, files=files)
r = requests.post(url, data=payload, files=files)
Solved! Go to Solution.
Stupid me got it, just forgot the 'f' parameter -> set to JSON in this sample. Anyway wanted to provide you my solution.
token = arcpy.GetSigninToken()
url="https://myorganization.arcgis.com/sharing/rest/content/users/username/9d0a35bf33c24f289e626b51f9asdf4578/items/123456782345678itemId/update"
payload={
# THIS PARAMETER MADE THE DIFFERENCE
'f': 'json',
'description': 'Rest Test',
'overwrite': 'true',
'async': 'true',
'token': token['token'],
'title': 'RestTestFile',
'name': 'RestTestFile.csv',
'type': 'CSV',
'tags': 'RestTest',
'typeKeywords': 'CSV'}
files={
'file': ('RestTestFile.csv', open(file_path_variable,'rb'), 'text/csv')
}
# two kinds of requests with requests library
response = requests.request("POST", url, data=payload, files=files)
r = requests.post(url, data=payload, files=files)
Stupid me got it, just forgot the 'f' parameter -> set to JSON in this sample. Anyway wanted to provide you my solution.
token = arcpy.GetSigninToken()
url="https://myorganization.arcgis.com/sharing/rest/content/users/username/9d0a35bf33c24f289e626b51f9asdf4578/items/123456782345678itemId/update"
payload={
# THIS PARAMETER MADE THE DIFFERENCE
'f': 'json',
'description': 'Rest Test',
'overwrite': 'true',
'async': 'true',
'token': token['token'],
'title': 'RestTestFile',
'name': 'RestTestFile.csv',
'type': 'CSV',
'tags': 'RestTest',
'typeKeywords': 'CSV'}
files={
'file': ('RestTestFile.csv', open(file_path_variable,'rb'), 'text/csv')
}
# two kinds of requests with requests library
response = requests.request("POST", url, data=payload, files=files)
r = requests.post(url, data=payload, files=files)