python - 如何通过 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 格式。
任何建议将不胜感激。
提前致谢。
解决方案
推荐阅读
- mongodb - 我们可以用spring boot连接多个mongoDB数据源吗
- travis-ci - 将工作服报告从 Travis-CI 迁移到 GitHub Actions
- csvhelper - CsvHelper C# 日期时间格式 dd/mm/yyyy
- spring - Docker 上的 Spring 属性误读
- c - curl 使用自定义函数附加 slist
- javascript - jQuery .hide() & .show()
- javascript - Javascript如何获取当前时间的最近小时并添加额外的小时
- php - PHP 中未定义的 PHP 变量:变量 $_GET_GET。尝试访问 null 类型值的数组偏移量
- angular - 错误 TS2351:此表达式不可构造。类型 'typeof import("jspdf")' 没有构造签名
- mysql - 在 MySQL 关系表中获取给定子节点的所有父节点(及其父节点)