我正在尝试将 2 个变量写入我的 csv 中的行。 result
变量(有 2 个列/值)和 'item 变量(只有 1 个值)。我可以在
writerow` 函数参数中包含这两个值吗?如果是这样,语法看起来如何?我在下面的两个变量之间使用逗号的语法不起作用。
我说的是:
writer.writerow([item,result.items()[0][0],result.items()[0][1]])
所有代码:
#!/usr/bin/env python
import splunklib.client as client
import splunklib.results as results
import csv
listOfAppIDs = []
with open('filefolder/filelocation.txt', 'r') as fi:
for line in fi:
listOfAppIDs.append(line.rstrip('\n'))
listOfAppIDs.sort() #alphebetically sort list
HOST = "ipAddress"
PORT = 1234
USERNAME = "uName"
PASSWORD = "pWord"
startPoint = "firstAppInList"
outputCsv = open('filefolder/filelocation.csv', 'wb')
fieldnames = ['appID', 'TotalDestinationIPAddresses', 'AverageThroughputPerMonth']
writer = csv.DictWriter(outputCsv, fieldnames=fieldnames)
writer.writeheader();
def connect():
global startPoint , item
service = client.connect(
host=HOST,
port=PORT,
username=USERNAME,
password=PASSWORD,
autologin=True
)
jobs = service.jobs
kwargs_blockingsearch = {"exec_mode": "blocking"}
try:
for item in listOfAppIDs:
if (item >= startPoint):
searchquery_blocking = "splunkQuery"
print item + ':'
job = jobs.create(searchquery_blocking, **kwargs_blockingsearch)
for result in results.ResultsReader(job.results()):
writer.writerow([item,result.items()[0][0],result.items()[0][1]])#writes data underneath the column header
except csv.Error:
startPoint = item
connect()
connect()
outputCsv.close()
回答:
writer.writerow([item,result.items()[0][1],result.items()[1][1]])
最佳答案
通过将多个字段传递给 writerow
数组。假设 result
是一个包含两个元素的数组,您可以这样做
writer.writerow([item,result[0],[result[1]])
或者如果 result
根据您的评论是一个 OrderedDict
,您可以这样做:
writer.writerow([item,result.items()[0][0],result.items()[0][1]])
关于python - CSV 写行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35710469/