从今天早上开始,我一直在努力处理以下代码。我还是python新手。我希望能够与你们一起帮助人们,但是现在,我是新手。
我创建了一个带有静态变量的类产品来存储所有产品。
class Product(dict):
all_p=[]
def __init__(self):
self['Nom'] = ','
self['Marque'] = ','
self['Description'] = ','
self['Formule'] = ','
all_p.append(self)
从循环中生成我的产品列表,最终得到:
for i in range(0, len(all_p)):
print(all_p[i])
我所有的产品。(也许有更好的方法,但是随着它的工作,我可以接受)。
这是我的产品列表的示例:
[{'Nom': 'Mustard', 'Marque':'Heinz','Description','enjoy the meal!',
'Formule':['ingredient0','ingredient1','ingredient2','ingredient3','ingredient4']},
{'Nom': 'Ketchup', 'Marque':'Amora','Description','best with mussels',
'Formule':['ing0','ingredient1','ing2','ingredient3','ingredient4']}]
这是我的真实问题:
我想将此信息添加到以这种格式myfile.csv
定位的csv文件C:\Users\myfolder
中:
Col1 Col2 Col3 ...
Nom Mustard Ketchup ...
Marque Heinz Amora ...
Description enjoy the meal! best with mussels ...
formule ['ingredient0',...] ['ing0',...] ...
抱歉,我太具体了。应该不会太复杂,但是在all_p[i]
将信息解析并将其添加到Excel时出现错误。您的帮助将非常棒!
您可以尝试以下代码。
指定字段宽度时请多加注意。由于您的清单很长,因此此处静态数为75。
details =[{'Nom': 'Mustard', 'Marque':'Heinz','Description': 'enjoy the meal!','Formule':['ingredient0','ingredient1','ingredient2','ingredient3','ingredient4']},{'Nom': 'Ketchup', 'Marque':'Amora','Description': 'best with mussels','Formule':['ing0','ingredient1','ing2','ingredient3','ingredient4']}]
# print (details)
d = {}
for detail in details:
for k, v in detail.items():
if k in d:
d[k].append(v)
else:
d[k] = [v]
# print (d)
# print(tuple("Col" + str(i) for i in range(1, len(d["Nom"])+2)) )
if d:
format_str = "%-75s\t"*(len(d["Nom"])+1)
# print (format_str)
s = format_str %tuple("Col" + str(i) for i in range(1, len(d["Nom"])+2)) + "\n"
for k, v in d.items():
s += format_str % (k, *v) + "\n"
print (s)
Col1 Col2 Col3
Nom Mustard Ketchup
Description enjoy the meal! best with mussels
Formule ['ingredient0', 'ingredient1', 'ingredient2', 'ingredient3', 'ingredient4'] ['ing0', 'ingredient1', 'ing2', 'ingredient3', 'ingredient4']
Marque Heinz Amora
最后,您可以使用以下代码将此字符串写入文件。
with open("C:\\Users\\myfolder\\myfile.csv", "w", encoding="utf-8") as f:
f.write(s)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句