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

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

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

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

Q&A

1回答

7626閲覧

pythonのエラー解決(TypeError: __init__() got multiple values for argument 'fieldnames')

Satoki

総合スコア13

Python

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

0グッド

0クリップ

投稿2020/02/25 10:40

■解決したいこと
下記のmain.pyを実行するとエラーが出る。
その解除方法がわからない。(3時間ほど格闘しましたが、諦めました。)

■コード
・save.py

import csv class robQ_sava(): def __init__(self,shop): self.shop = shop def find_file(self): n=0 target = '/Users/okamotosatoki/Desktop/python/robQ/csv_files' for dirPath, dirList, fileList in os.walk(target): for fileName in fileList: if fileList =='record.csv': n=1 return n def insert(self,shop): with open('csv_files/record.csv','w') as f: fieldnames = ['Shop','Count'] writer = csv.DictWriter(self, f, fieldnames = fieldnames) writer.writeheader() writer.writerow({'Shop':shop,'Count':1})

・main.py

import save s = save.robQ_sava('Apple') print(s.find_file()) if s.find_file()==0: s.insert('Aplle') print('if') else:print('else')

■実行結果・エラー内容

user_1kiyoshiju-no-MacBook-Air:robQ user_1user_2$ python3 main.py 0 Traceback (most recent call last): File "main.py", line 17, in <module> s.insert('Aplle') File "/Users/user_1user_2/Desktop/python/robQ/save.py", line 26, in insert writer = csv.DictWriter(self, f, fieldnames = fieldnames) TypeError: __init__() got multiple values for argument 'fieldnames' user_1kiyoshiju-no-MacBook-Air:robQ user_1user_2$

 
■ディレクトリ構成()

main.py
save.py
csv_file/record.csv

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

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

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

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

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

guest

回答1

0

python

1 writer = csv.DictWriter(self, f, fieldnames = fieldnames)

なぜselfを引数に渡したのですか?

csv.DictWriter(f, fieldnames=fieldnames)でいいはずですが。

class csv.DictWriter(f, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)¶

[csv --- CSV ファイルの読み書き — Python 3.8.2rc2 ドキュメント](https://docs.python.org/ja/3/library/csv.html#csv.DictWriter) リファレンスを見れば分かる通り第一引数が出力先ファイルオブジェクト、第二引数がフィールド名です。`self`と`f`で第二引数まで渡したことになってしまっているので、更に`fieldnames`引数を指定することはできないというエラーが発生しているようです。

投稿2020/02/25 10:45

hayataka2049

総合スコア30939

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問