[解決済み] ValueError: dictにfieldnamesにないフィールドが含まれている。
2022-02-12 13:48:02
質問
どなたか教えてください。
私は私の選択クエリを持っています
selectAttendance = """SELECT * FROM table """
そして、selectクエリの内容を、csvファイルをダウンロードする際にヘッダーに含めたいのです。 そこで、こんなクエリをしてみました。
with open(os.path.join(current_app.config['UPLOAD_FOLDER'], 'csv.csv'), 'wb') as csvfile:
writer = csv.DictWriter(csvfile,fieldnames = ["Bio_Id","Last_Name","First_Name","late","undertime","total_minutes", "total_ot", "total_nsd", "total_absences"], delimiter = ';')
writer.writeheader()
writer.writerow(db.session.execute(selectAttendance))
db.session.commit()
しかし、このようなエラーが発生します。
**ValueError: dict contains fields not in fieldnames**
ダウンロードしたcsvファイルに、このような出力が欲しいのですが。
Bio_Id Last_Name First_Name late undertime total_minutes total_ot total_nsd total_absences
1 Joe Spark 1 1 2 1 1 1
よろしくお願いします。
どのように解決するのですか?
エラーにあるように、クエリから取得した辞書には、DictWriter コンストラクタで指定したフィールド名よりも多くのキーが含まれています。
一つの解決策は、このようにあらかじめフィルタリングしておくことです。
field_names = ["Bio_Id","Last_Name", ...]
writer = csv.DictWriter(csvfile,fieldnames=field_names , delimiter = ';')
writer.writeheader()
data = {key: value for key, value in db.session.execute(selectAttendance).items()
if key in field_names}
writer.writerow(data)
もう一つの解決策は、これらのフィールドのみを使用してクエリを構築することです。
query = 'SELECT %s FROM table' % ', '.join(field_names)
しかし、Tim Pietzckerの回答は最高です。
関連
-
Python カメの描画コマンドとその例
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] なぜdict[key]ではなく、dict.get(key)なのか?
-
[解決済み] 特定のキーだけを含むようにdictをフィルタリングしますか?
-
[解決済み] Excel 2007で改行を含むCSVをインポートする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。