現在以下の機能のAPIを作成してます。
①Getリクエストからリストをパラメーター(DBのテーブル名)で取得
②①で取得したパラメーターをループ処理でSQLの変数に使い結果を取得(テーブルの全カラムを取得)
③②で取得したデータを全て変数tag_listにまとめる
④tag_listをクライアントに返す
この中で③のSQLの結果を一つの変数に全てまとめるところでうまく行きません。
以下のコードを見て頂いた通り、毎回のfor文の際にtag_list = []と初期化しているため、各SQLの結果がそれぞれ別のリストとして格納されているのですが、変数tag_listにまとめるためにはどのような処理を加えればいいでしょうか??
何かアドバイスなどありましたらご教授頂ければ幸いです。よろしくお願いします。
動作がテスト出来次第、このコードをベースにFlaskで書き直して実装します。
import urllib.request import urllib.parse import json from google.cloud import bigquery def get_tags(): client = bigquery.Client() tableName = ['clientA','clientB','test2'] for table in tableName: query = """SELECT column_name FROM `test_project.test_table.INFORMATION_SCHEMA.COLUMNS` where table_name = '{}' """.format(table) job_config = bigquery.QueryJobConfig( query_parameters=[ bigquery.ScalarQueryParameter("table", "STRING", table) ] ) query_job = client.query(query) query_res = query_job.result() tag_list = [] for row in query_res: tag_list.append(row[0]) print(tag_list) # response = json.dumps(tag_list) # return print(response) get_tags()
print(tag_list)結果
['skincare', 'chubby', 'aging_body_odor', 'pimple', 'clientA']
['constipation', 'Hyperhidrosis', 'bad_breath', 'clientB']
['column1', 'column2', 'column3', 'test2']
理想
↓
['skincare', 'chubby', 'aging_body_odor', 'pimple', 'clientA','constipation', 'Hyperhidrosis', 'bad_breath', 'clientB','column1', 'column2', 'column3', 'test2']
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/30 06:25