2017-10-27 11 views
0

Pythonリストの項目に基づいて特定のフィールドを取得するにはどうすればよいですか?SQLite、Python - Pythonリスト項目に基づいてセカンダリフィールドを取得する

私は現在、SQLiteで私の2014 Data Tableに由来するエントリ番号のpythonリストを持っています。私のpython関数の終わりに、私はエントリ番号が関連付けられている人を取得する必要があります。

したがって、たとえば、私は5つのエントリ番号のリストを持っている:

Entry List 

Entry# 
1045 
1794 
2398 
3476 
6312 

私が欲しいもの:

Entry# Person 
1045  Jim 
1794  Carol 
2398  Bill 
3476  Mary 
6312  Viola 

は、私はこれらのエントリ番号がに関連付けられているその人を取得する必要があります。データは2014 Data Tableにありますが、そのためのSQLクエリーを理解することはできません。

私が得ている最も近いです:あなたの助けを事前に

import sqlite3 
import csv 

sqlite_file = 'researchdata.db' 
conn = sqlite3.connect(sqlite_file) 
c = conn.cursor() 

for i in Entry_list: 
    result = c.execute('SELECT Person FROM 2014Data WHERE EntryID = ?', i) 
    result_list = list(result) 
    print(result_list) 
# print() 

ありがとう!

+0

はそれが役立つだろうとあなたが今得ている結果とあなたが取得したい1 – Marco

+0

こんにちは@マルコ、私は私の質問にそれを加えました。フィードバックをお寄せいただきありがとうございます!あなたの応答のための 'インポートsqlite3の インポートCSV sqlite_file = 'researchdata.db' でCONN = sqlite3.connect(sqlite_file) C = conn.cursor()' – grigs

答えて

0

これで試してください:あなたはsqliteの(上部のインポートライン)にアクセスするために使用されてはlibた示す場合

import sqlite3 
import csv 

Entry_list = [1,2] 

sqlite_file = 'researchdata.db' 
conn = sqlite3.connect(sqlite_file) 
c = conn.cursor() 

for i in Entry_list: 
    sql = "SELECT Person FROM _2014Data WHERE EntryID = %i" % (i) 
    result = c.execute(sql) 
    record = result.fetchone() 
    print(record[0])  
+0

ありがとう! 'TypeError:%i形式:文字列ではなく数字が必要です '私が使っているリストは文字列として数字でいっぱいです。このための回避策はありますか? – grigs

+0

%sを使用して45個の結果のリストを出力しようとすると、私はちょうど45個の空白 '[]'を取得します。 – grigs

+0

今すぐ取得しました。両方の列をまとめて取得するには、 "SELECT Person、EntryID FROM _2014Data Where EntryID =%s"%(i)を使用しなければなりませんでした。 – grigs

関連する問題