![](/img/trans.png)
[英]Python: Reading from two array of tuples at a time and placing them side-by-side on CSV file
[英]Writing multiple lists of tuples side-by-side to CSV in Python
在將數據追加到每個列表中之后,在打印(i,j,k)之后,我得到了一組看起來像這樣的列表:
print(i) = [('Danny', 'US', '1995')]
print(j) = [('290', 'Technology')]
print(k) = [('Winter', 'Corporate', '90', '20009')]
似乎很簡單,但是如果我這樣做:
writer.writerow(i + j + k)
我的輸出看起來像:
column 1 column 2 column 3
('Danny', 'US', '1995) ('290', 'Technology') (Winter', 'Corporate', '90', '20009)
但是,我想使用writerow來獲取所有這些列表,並將它們並排寫到CSV文件中,而沒有括號或引號,其中每個列表中的每個元素都在自己的列中,如下所示:
Danny US 1995 290 Technology Winter Corporate 90 20009
我可以使用writerows(i + j + k)將每個列表寫在自己的列中,但是然后每個列表都寫在彼此之間,而不是並排編寫。
我最小化但完整的程序如下所示:
soup = BeautifulSoup(xml_string, "lxml")
with open('./output.csv', 'ab+') as f:
writer = csv.writer(f, dialect = 'excel')
for info in data:
i = []
j = []
k = []
for item1 in p:
i.append(....stuff with Danny)
for item2 in b:
j.append(....things with 290)
for item3 in n:
k.append(....info with Winter)
writer.writerow(i + j + k)
您的代碼應該可以正常工作,因為我看不到完整的源代碼,這是一個類似的示例,可以從您的元組中正確生成一行。
i = ('Danny', 'US', '1995')
j = ('290', 'Technology')
k = ('Winter', 'Corporate', '90', '20009')
import csv
with open('eggs.csv', 'w') as csvfile:
writer = csv.writer(csvfile, delimiter=',',
quotechar='|', quoting=csv.QUOTE_MINIMAL)
writer.writerow(i+j+k)
CSV輸出:
這是另一種方式:
import csv
i = ('Danny', 'US', '1995')
j = ('290', 'Technology')
k = ('Winter', 'Corporate', '90', '20009')
with open('./output.csv', 'a+', newline='') as f:
writer = csv.writer(f, dialect = 'excel')
i1=tuple()
j1=tuple()
k1=tuple()
for item1 in i1:
i = i+(item1,)
for item2 in j1:
j = j+(item2,)
for item3 in k1:
k = k+(item3,)
dannyData = i+j+k
print(dannyData)
writer.writerow(dannyData)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.