我有一份清单清单:
"mappings": {
"my_type": {
"properties": {
"docid": {
"type": "keyword"
},
"flgname": {
"type": "text"
}
}
}
}
该表是列表,其中每个列表具有不同的元素长度,并且所有元素可以是字符串
index.cgi:
table = []
headers = ["JobId", "Name", "Start_Date", "End_Date", "Value"]
table.append(headers)
values1 = ['efwef', 'erwerw', '01', '02', 99]
table.append(values1)
values2 = ['efwsdfsef', 'erdwerw', '01']
table.append(values2)
但这会打印出来:
print "Content-Type: text/plain; charset=UTF-8"
print "Content-Disposition: attachment; filename=test.txt"
print
for row in table:
for row_values in row:
if type(row_values) is not str:
row_values = str(row_values)
print row_values + '\t'
print '\n'
.... ....
有人可以告诉我这里做错了什么吗?我尝试更换'\ n'并打印“#########”仍然看到:
JobId
Name
Start_Date
End_Date
Value
efwef
erwerw
01
02
99
即使我没有添加'\ n',列表中的每个元素都会以新行打印。
答案 0 :(得分:2)
print
添加换行符。实现所需目标的一种方法是使用print
一次str.join
您的行(另请注意:您的所有数据都是字符串,因此无需转换为字符串)
for row in table:
print("\t".join(row))
如果你有整数/浮点数不起作用:
for row in table:
print("\t".join(map(str,row)))
与join
的良好接触是,它不会在字符串的末尾添加(无用的)\t
,您无需手动处理。
但是你可以用一个更简单的方式使用csv
模块(甚至包含非字符串列表),在一行中:
import csv,sys
csv.writer(sys.stdout,delimiter="\t").writerows(table)