質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

367閲覧

Pythonで配列内の各要素をcsvファイルに出力する方法

ddr

総合スコア2

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/02/22 14:07

Python

1import csv 2 3HEADER = ['果物','特徴一覧'] 4 5with open('果物の特徴.csv', 'w', encoding='utf-8') as f: 6 7 writer = csv.writer(f) 8 writer.writerow(HEADER) 9 10 fruit = 'りんご' 11 feature = ['120円','赤い','丸い'] 12 13 row = [fruit,feature] 14 writer.writerow(row)

このコードを実行したときにcsvファイルに出力される結果が以下のようになってしまいます。


果物,特徴一覧
りんご,"['120円', '赤い', '丸い']"


上の出力結果を次のようにしたいと思っています。


果物,特徴一覧
'りんご','120円', '赤い', '丸い'


この時にfeature内の要素数がn個の時でも対応できる方法を知りたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

quoting=csv.QUOTE_ALL を指定していますのでカラム名もシングルクォートで囲まれます。

python

1import csv 2 3HEADER = ['果物','特徴一覧'] 4 5with open('果物の特徴.csv', 'w', encoding='utf-8') as f: 6 7 writer = csv.writer(f, quotechar="'", quoting=csv.QUOTE_ALL) 8 writer.writerow(HEADER) 9 10 fruit = 'りんご' 11 feature = ['120円','赤い','丸い'] 12 13 #row = [fruit,feature] 14 row = [fruit] + feature 15 writer.writerow(row)

果物の特徴.csv

csv

1'果物','特徴一覧' 2'りんご','120円','赤い','丸い'

投稿2022/02/22 14:23

melian

総合スコア19803

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ddr

2022/02/22 14:35

詳細な回答ありがとうございました。
guest

0

アンパックを活用すればよいかと思います。

python

1row = [fruit, *feature]

投稿2022/02/22 14:18

neko_the_shadow

総合スコア2230

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ddr

2022/02/22 14:36

すごくシンプルな解決策でした。ありがとうございました。
guest

0

質問文にある

果物,特徴一覧
'りんご','120円', '赤い', '丸い'
では、データ行は4つになってしまいますね。

'りんご','120円, 赤い, 丸い'
のようにすれば、データ行も2列になります。

このように出力するには次のようにします。
p.py

python3

1import csv 2 3HEADER = ['果物','特徴一覧'] 4DATA = [ 5 { 'fruits': 'りんご', 'feature': ['120円','赤い','丸い'] } 6] 7 8with open('果物の特徴.csv', 'w', encoding='utf-8') as f: 9 writer = csv.writer(f, quotechar="'", quoting=csv.QUOTE_ALL) 10 writer.writerow(HEADER) 11 12 for x in DATA: 13 row = [x['fruits'], ','.join(x['feature'])] 14 writer.writerow(row)

実行例:
イメージ説明

参考情報

投稿2022/02/22 22:22

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問