前提・実現したいこと
Python初心者です。
どこで躓いているのかわからず、ご指導いただければと思います。
Python3系でWebフレームワークのbottleを利用してWEBアプリケーションの開発をしています。
やりたいことは以下の通りです。
bratをWEBアプリケーションに組み込んで、SQLiteに格納したデータを取得して表示したい。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "/Users/Username/nlp/py3env/lib/python3.7/site-packages/bottle.py", line 862, in _handle return route.call(**args) File "/Users/Username/nlp/py3env/lib/python3.7/site-packages/bottle.py", line 1742, in wrapper rv = callback(*a, **ka) File "src/sample_06_08.py", line 23, in get row = datastore.get(doc_id, fl=['content']) File "/Users/Username/nlp/src/sqlitedatastore.py", line 40, in get for key, value in zip(fl, row_ls): TypeError: zip argument #2 must support iteration
該当のソースコード
Python
1# sqlitedatastore.py 2def get(doc_id, fl): 3 row_ls = conn.execute( 4 'SELECT {} FROM docs WHERE id = ?'.format(','.join(fl)), 5 (doc_id,)).fetchone() 6 row_dict = {} 7 for key, value in zip(fl, row_ls): 8 row_dict[key] = value 9 return row_dict
Python
1# sample_06_08.py 2@bottle.get('/get') 3def get(): 4 doc_id = bottle.request.params.id 5 names = bottle.request.params.names.split() 6 7 row = datastore.get(doc_id, fl=['content']) 8 text = row['content'] 9 text = re.sub(r'[。!]', '\n', text) 10 11 data = { 12 'collection': { 13 'entity_types': [], 14 }, 15 'annotation': { 16 'text': text, 17 'entities': [], 18 'relations': [], 19 }, 20 } 21 22 mapping = {} 23 for name in names: 24 annos = datastore.get_annotation(doc_id, name) 25 for i, anno in enumerate(annos): 26 data['collection']['entity_types'].append({ 27 'type': name, 28 'bgColor': '#7fa2ff', 29 'borderColor': 'darken' 30 }) 31 32 Ti = 'T{0:d}'.format(len(data['annotation']['entities']) + 1) 33 data['annotation']['entities'].append([ 34 Ti, 35 name, 36 [[anno['begin'], anno['end']]] 37 ]) 38 mapping[(name, i)] = Ti 39 40 for name in names: 41 annos = datastore.get_annotation(doc_id, name) 42 for i, anno in enumerate(annos): 43 if 'link' not in anno: 44 continue 45 name_linked, i_linked = anno['link'] 46 if (name, i) not in mapping or (name_linked, i_linked) not in mapping: 47 continue 48 49 data['annotation']['relations'].append([ 50 'R{0:d}'.format(len(data['annotation']['relations']) + 1), 51 'arg', 52 [['src', mapping[(name, i)]], ['tgt', mapping[(name_linked, i_linked)]]] 53 ]) 54 55 return json.dumps(data, ensure_ascii=False)
試したこと
ターミナルから[sample_06_08.py]を実行。
指定したlocalhostにアクセス。
結果:データが表示されず、エラーが帰ってくる。
補足情報(FW/ツールのバージョンなど)
[環境]
・ macOS Catalina(10.15.1)
・ Python 3.7.4
・ bottle 0.12.17
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/26 07:47
2019/11/26 07:56