首页 > 解决方案 > 如何通过 Python 提交 curl 请求以返回 csv 文件

问题描述

我有一个 cURL 脚本,当通过 CMD 提示窗口运行时,它会返回请求的数据。但是我试图弄清楚如何通过 Python(2.7 - 3.6)自动化这个过程,以便它返回一个 csv 文件。(在使用 ArcGIS ArcMap 和/或 ArcGIS Pro 制图软件时,我使用的是最新版本的 Python。)

我有基本的 Python 技能,需要帮助才能正确编写脚本。下面是我通过 CMD 提示窗口推送的 cURL 脚本。如何使用 Python 执行此操作以使其返回 csv 文件?

我查找了各种示例,这些示例在所需参数方面似乎有些不同。我试图修改一些,但无法让它们工作。我没有设置一种方法与另一种方法,所以我对不同的解决方案持开放态度,只需要找到一个可行的解决方案。我的 cURL 不需要用户名,只需要一个 API 密钥和一些基本的搜索参数。我发现的大多数示例都需要用户名和密码。

当前卷曲代码...

curl -H "授权:基本 myAPIkey" "<a href="https://website.com/api/incident?search_from=2019-08-01&search_to=2019-08-31" rel="nofollow noreferrer">https: //website.com/api/incident?search_from=2019-08-01&search_to=2019-08-31”</p>

我希望能够下载 csv 文件。我遇到的错误取决于我尝试复制的示例和方法。

感谢您提前提供任何帮助。

更新

我设法找出 Python 请求选项来提交我的初始请求:

import requests,json
headers = {'Authorization': 'Basic APIKEY'}
response = requests.get("https://website.com/api/incident?search_from=2019-08-01&search_to=2019-08-31&country_id=5", headers=headers)
print json.dumps(response.json(), indent=4)

它现在返回我相信一个 json 文件,但是我在正确解析它以保存为 csv 或作为 ArcGIS 中的新要素类时仍然遇到问题。

打印语句返回以下内容:

{“消息”:“”,“总计”:1,“数据”:{“总计”:353,“结果”:[{“mgrs”:“33S UR 71235 88779”,“重量”:0,“type_id “:”1,“经度”:“13.63040400”,“日期”:“2019-08-31”,“纬度”:“32.42868600”,“图标”:“assets/images/map_icons/Announcement.png”, “id”:“507188”,“数量”:“1”},{“mgrs”:“33S US 40233 29235”,“重量”:1,“type_id”:“3”,“经度”:“13.29387300”,“日期”:“2019-08-31”,“纬度”:“32.78945800”,“图标”:“资产/图像” /map_icons/ArmedClashes.png", "id": "507187", "quantity": "1" } ] } }assets/images/map_icons/ArmedClashes.png", "id": "507187", "quantity": "1" } ] } }assets/images/map_icons/ArmedClashes.png", "id": "507187", "quantity": "1" } ] } }

我希望能够读取并正确地将“结果”列表转换为具有适当标题列的 csv 格式。

任何建议将不胜感激。

提前致谢。

标签: pythoncurlpycurl

解决方案


推荐阅读