Skip to main content
 首页 » 编程设计

python之将非理想列表格式导出到 Excel

2025年05月04日9kenshinobiy

我有一个很大的列表,包含一系列 id 和相关值,极短的版本如下所示:

large = [('550111', [(4, 5, 8), (6, -4, -6)]), ('222211', [(2, -4, 5), (1, 15, -4)])] 

我想将其导出到 excel 中,5501 将位于 A1 中,然后第一组值将位于 B1< 中, B2 & B3 和下一组在 C1, C2, C3,然后在 E1 中有一个空格,然后是 2222,在 F1,F2< 中与它相关的第一组值 & F3,G1、G2、G3 中的第二个。即在 Excel 中(每个值都有自己的 Excel 矩形),如:

550111 
4 5 8 
6 -4 -6 
'space here (dont know how to add one)' 
222211 
2 -4 5 
1 15 -4 
'SPACE HERE AGAIN' 

我试过以下方法:

writer_jobby = csv.writer(open('poo5.csv', 'wb'), delimiter=',') 
 
for i in large: 
 
    if i == '[': 
 
        i.replace() 
 
    if i == ']': 
 
        i.replace() 
 
    if i == '(': 
 
        i.replace() 
 
    if i == ')': 
 
        i.replace() 
 
    else: 
 
        writer_jobby.writerow(i)   

但我得到了绝对的废话,因为我正在努力解决如何处理列表中的 [] 和 () 的问题。如果有人可以阐明我如何处理数据,以便我可以以所需的方式导出数据,我将不胜感激。谢谢。

非常感谢帮助。

编辑

新的所需形式包括。 绝对最大值:

550111 
4,5,8  
6,-4,-6 
'space here' 
'Max:' 
6, 5, 8 
'space here'      
222211  
2,-4,5  
1,15,-4 
'space here' 
'Max:' 
2, 15, 5  
'space here' 
1, 2, 3, ........, 8904  

请您参考如下方法:

也许这样的事情会有帮助?

import csv 
large = [('5501', [(4, 5, 8), (6, -4, -6)]), ('2222', [(2, -4, 5), (1, 15, -4)])] 
 
with open("out1.csv", "wb") as fp: # open the file, call it fp, and autoclose it 
    writer = csv.writer(fp, delimiter=",") 
    for entry in large: 
        writer.writerow([entry[0]]) # one-element list 
        for line in entry[1]: # loop over each tuple in the second element 
            writer.writerow(line) 
        writer.writerow([]) # write an empty row 

这产生

localhost-2:coding $ cat out1.csv  
5501 
4,5,8 
6,-4,-6 
 
2222 
2,-4,5 
1,15,-4 

csv 模块通常用于从元素写入行。我不知道 final 是什么,但看起来你正在尝试用 large 制成的字符串做一些事情,这不会很好地工作.