csvファイルにリストを書き込もうとしています。 私はいくつかの問題に直面しています。 (F)はAttributeError = csv.writerpythonリストからcsvファイルに印刷された最初と3番目の要素のみ
- 作家は:「リスト」オブジェクトが属性「作家
を持っていない私はそれを解決するために、このlinkを使用し、それが働いた、とだけなしのための第二の印刷しました最初と3番目を書く。
これはアイデアはリストインデックスに1を含むリストを交換することである@gumboy
csv = [['1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'], ['2', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0'], ['3', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0']]
csvdict = {words[0]:words[1:] for words in csv}
for x in csvdict.keys(): # iterate over the keys '1', '2', ....
products = [index+1 for index,v in enumerate(csvdict[x]) if v == '1' ] # create list of purchases where the '1's are indexed
print ("costummer", x, "buy", products)
によって書かれたコードです。この問題は既に解決されています。上記のリンクを使用して最初の問題を解決すると、コードは実行されましたが、csvファイルに書き込まれませんでした。 私は@gumboyコードで最初の問題の解決策を組み合わせることを試み、ここではコードである:私は上記のように、コードが動作のみ印刷せずに第一および第三の要素の第2のプリントされ
csvdict = {words[0]:words[1:] for words in csv}
for x in csvdict.keys(): # iterate over the keys '1', '2', ....
products = [index+1 for index,v in enumerate(csvdict[x]) if v == '1' ] # create list of purchases where the '1's are indexed
#print (products)
f = open("H.csv", 'w')
hasil = ("costummer", x, "buy", products)
hasilstr = (','.join([str(x) for x in hasil]))
print (hasilstr)
f.write(hasilstr)
。
csvファイルに書かれている対印刷機能: 印刷:
costummer,1,buy,[12, 22]
costummer,2,buy,[8, 12, 38, 46]
costummer,3,buy,[4, 34, 43]
CSFファイル:
costummer,2,buy,[8, 12, 38, 46]
興味深いことに、3番目の要素ではなく2番目の要素が印刷されていることがわかりました。リストをstrに変換することで、正しい移動先ですか?他のものはなぜ最後の要素(3番目の要素)を出力しないのでしょうか? – Tanabata
あなたの希望するCSV出力は何ですか? – Gumboy
CMIIW、彼らは正しいものを書くだろうか?私はちょうど私が上でやっていることがループロジックを乱用していないことを明確にしたいということです。 printとwrite hasilstrなので、彼らはそれが正しいものを書くべきですか? 1、購入、[12,22]、 コスマーマー、2、購入、[8,12,38,46]、 コスマーマー、3、購入、[4,34,43] ]、彼らはcostumer 1と2しか印刷しませんでした。 – Tanabata