TkInterを利用したGUIアプリの中で、WebAPIで取得した 辞書型配列を CSV出力する機能を構築中です。
APIで取得した辞書型配列が CSV出力の関数側にうまく渡らない問題が発生しているので、以下のように簡易版のコードを作ってみました。
(本来はclass名Apprication(ttk.Frame)の中で、WebAPIアクセスの関数とCSV出力の関数が相互に働く作りにしています)
しかしながら この簡易版さえ 変数のスコープ・特性をちゃんと理解できていないのか うまく動作しません。
list関数の上でkeyを得ようとしている部分でコケてしまいます、それもそのはず内容が引き継がれていない。
data_Make()の関数で設定した内容が csv_Outの関数側で参照てきない理由は なぜでしょうか?
初歩的な ことでしょうが ご教示をよろしくお願い申し上げます。
Python
1import csv 2 3output_data = [] 4print("その①⇒" + str(type(output_data))) #list と表示されます 5 6 7def data_Make(): 8 output_data = [ 9 {"Name": "Alice", "Age": 40, "Point": 80}, 10 {"Name": "Bob", "Age": 20, "Point": 60}, 11 {"Name": "Charlie", "Age": 30, "Point": 70}, 12 ] 13 14 15def csv_Out(): 16 17 print("その②⇒" + str(type(output_data))) #list と表示されます 18 19 print(output_data) #★ カラです ★ 20 21 22 header = list(output_data[0].keys()) #★ コケます ★ 23 24 with open("output.csv", "w", newline="") as f: 25 writer = csv.DictWriter(f, fieldnames=header) 26 writer.writeheader() # ヘッダーを書き込む 27 writer.writerows(output_data) # データを書き込む 28 29 30data_Make() 31csv_Out()
回答5件
あなたの回答
tips
プレビュー