2016-11-30 8 views
1

のためのJSONオブジェクトへのデータの2セットを取得し、コードがPythonは、私はアヤックスを経由して2つのデータベースクエリを作ること、現時点ではスクリプトに取り組んでいますAJAXの応答

if(request.args.get('staff')): 
    data = [] 
    sel = select('*').select_from(staff).where(staff.c.approver == 1).where(staff.c.workbase == request.args.get('set_workbase')).where((staff.c.status != 'Left') & (staff.c.status != 'Name Changed')) 
    approvers = FlaskApp.db_connect().execute(sel).fetchall() 
    approvers = [utils.rowdict(a) for a in approvers] 
    data['approvers'] = approvers 

    sel = select('*').select_from(staff).where(staff.c.name == request.args.get('staff')) 
    staff_member = FlaskApp.db_connect().execute(sel).fetchall() 
    staff_member = [utils.rowdict(a) for a in staff_member] 
    data['staff_member'] = staff_member 

    return jsonify(data=data) 

することができますように、このようになります2つのクエリを実行していて、配列に結果を格納しているので、私の応答で両方のデータセットを持つことができます。しかし、私は現在、このエラーメッセージが私のAjax応答で返されました。

TypeError

TypeError: list indices must be integers, not str

私は間違っていますか?

答えて

2

としてdataと宣言したため、data['staff_member']は使用できません。あなたは、あなたのケースで行うことができますするようdatadictionaryを作ることです。listから要素を読み取るために、

Pythonで
data = {} 

、あなたがmy_list[i]を使用する必要がある、iはタイプintのindiceです。

my_dict = {'a': 'hello', 'b': 'world'} 
print(my_dict['a']) # Output: hello 

my_list = [1, 2, 3, 4] 
print(my_list[0]) # Output: 1 

dictionaryから要素を読み取るには、あなたがmy_dict[k]を使用する必要がある、kはタイプstringまたはその他のimmutableタイプのキーであります

関連する問題