私の質問にはたくさんの順列がありましたが、最も近い答えは次のとおりです。
Python 辞書を csv ファイルに書き込むにはどうすればよいですか?
残念ながら、次のように各行に出力が出力されます。
matthew, green
rachel, blue
raymond, red
where somedict = dict(raymond = "赤", レイチェル = "青", マシュー = "緑")
私の問題には、次のような出力が必要です。
why, date, story
"because", "sunday", "blah blah blah"
ユーザー入力から辞書を取得しています。出力ファイルでは、(理由、日付、ストーリー) に対するそれぞれの新しい回答を新しい行に配置することが重要です (さらに、列ヘッダーは 1 回だけ出力されます)。したがって、私のコードは次のようになります。
import csv
o = "file.csv"
why = input("Why? ")
date = input("Date: ")
story = input("Story: ")
要約すると、次のような出力が必要です。
why, date, story
"because", "sunday", "blah blah blah"
"i don't know", "monday", "blah blah blue"
"third base", "monday", "blah blah blarg"
ユーザー入力を取得し、csv ファイルの新しい行に書き込む簡単な方法を探していました。私はこれで約2時間過ごしたので、ここにいます。最初に 2 つの TypeError エラーが発生しました: (1) 'str' はバッファー インターフェイスをサポートしていません (これは with open(file, "wb", "utf-8") ステートメントに "utf-8" パラメーターを追加することで解決しました) )。(2) TypeError: 整数が必要です。何らかの理由で「wb」から「b」を削除したところ、このエラーは解消されたようです。私が投稿したリンクは、必要な場所にほぼ到達しますが、十分ではありません。誰かが提供できる迅速な説明を心から感謝します.
編集
明確にするために、いくつかの可能性を試しました。最も有望なのは次のとおりです。
with open("file.csv", "w", encoding = "utf-8") as f:
w = csv.writer(f)
w.writerows(somedict.items())
上記で引用した最初の出力が生成されましたが、これは必要なものではありません。
私も試しました:
with open("file.csv", "w", encoding = "utf-8") as f:
w = csv.writer(f)
w.writerow(somedict.keys())
w.writerow(somedict.values())
しかし、これは私に与えました: _csv.Error: sequence expected