【发布时间】:2020-08-20 03:33:05
【问题描述】:
我是第一次这样做,到目前为止已经设置了一个简单的脚本来从 API 获取 2 列数据
数据通过,我可以用打印命令看到它
现在我正在尝试将其写入 CSV 并设置下面创建文件的代码,但我不知道如何:
1.删除每个数据行之间的空白行
2。为我想要的数据添加分隔符“”
3。如果诸如 IP 之类的值为空白,则只显示“”
我搜索并尝试了各种示例,但只是收到错误
我的成功写入 CSV 的代码 sn-p 是
import requests
import csv
import json
# Make an API call and store response
url = 'https://api-url-goes-here.com'
filename = "test.csv"
headers = {
'accept': 'application/json',
}
r = requests.get(url, headers=headers, auth=('User','PWD'))
print(f"Status code: {r.status_code}")
#Store API response in a variable
response_dict = r.json()
#Open a File for Writing
f = csv.writer(open(filename, "w", encoding='utf8'))
# Write CSV Header
f.writerow(["Computer_Name", "IP_Addresses"])
for computer in response_dict["advanced_computer_search"]["computers"]:
f.writerow([computer["Computer_Name"],computer["IP_Addresses"]])
我得到的 CSV 输出如下所示:
计算机名、IP_地址
HYDM002543514,
HYDM002543513,10.93.96.144 - AirPort - en1
HYDM002544581,192.168.1.8 - AirPort - en1 / 10.93.224.177 - GlobalProtect-gpd0
HYDM002544580,10.93.80.101 - 以太网 - en0
HYDM002543515,192.168.0.6 - AirPort - en0 / 10.91.224.58 - GlobalProtect-gpd0
CHAM002369458,10.209.5.3 - 以太网 - en0
CHAM002370188,192.168.0.148 - AirPort - en0 / 10.125.91.23 - GlobalProtect-gpd0
MacBook-Pro,
我尝试添加
csv.writer(f, delimiter =' ',quotechar =',',quoting=csv.QUOTE_MINIMAL)
在 f = csv.writer 行之后但会产生错误:
TypeError: argument 1 must have a "write" method
我确信它很简单,但在我拥有的代码中找不到正确的解决方案。任何帮助表示赞赏。
另外,文件会自动关闭吗?一些示例建议使用类似 f.close() 的方法,但这会导致错误。我需要吗?该文件似乎可以按原样正常创建。
【问题讨论】:
-
“创建错误”->请更具体
-
TypeError: 参数 1 必须有一个“写”方法
标签: python csv export-to-csv delimiter