2016-07-05 5 views
0

従業員データを含むJSONは以下の通りです。Django JSON Eroor: "リストインデックスはstrではなく整数でなければなりません"

all_emp = {"success":true,"data":{"users": 
[[{"employeeId":"6","firstName":"Abhishek","lastName":"Amit"}, 
. 
. 
. 
{"employeeId":"CT045","firstName":"Daniel","lastName":"Swamy"} 
]]}} 

私は2つのテーブルIdeasLikesを持っています。

そのアイデアが好きな人の名前を表示したいと思います。

では、以下のJSON

を使用しての私のコードである私は、そのユーザーの名前にのようなテーブルのuser_idを交換したい、私は(アイデアを気に入っ)user_idを格納しているとidea_idが外部キー

あるテーブルが好き

{% for person in anidea.likelist %} 
    <span>{{person}}</span> 
{% endfor %} 
..テンプレートで次のビューファイル..

latest_ideas_list = Ideas.objects.order_by('-date_added') 

for i in latest_ideas_list: 
    people_like = Likes.objects.values_list('user_id', flat=True).filter(idea_id=i.idea_id) 
    for person in people_like: 
     if any(d["employeeId"] == person for d in all_emp['data']['users']): 
      person = d['firstName'] + ' '+ d['lastName'] 

    i.likelist = people_like 

"リストインデックスはstrではなく整数でなければなりません"

私はPythonとdjangoの新機能です。お願いします。

+0

ユーザーは何らかの理由でdictsのリストのリストです。 –

+0

はい。私はそれを外部のWebサービスを使用して取得しています。 – Shri

答えて

1

まず最初に、all_emp['data'].['users']all_emp['data']['users']d["employeeId"] == person for d in all_emp['data']['users']である必要があります。ここでは、dは1つの要素のみのリストであり、その要素はすべての雇用者データを持っています。

はそう簡単な修正としてあなたはこれを試すことができます:私は、コードを次のように私の問題を解決

d["employeeId"] == person for d in all_emp['data']['users'][0]

+0

エラーは発生していませんが、user_idを社員名に置き換えることはできません。 – Shri

0

p_result = [] 
for person in people_like:     
    for d in all_emp['data']['users'][0]: 
     if str(person) in d["employeeId"]: 
      person = d["firstName"] + ' '+ d["lastName"] 
      p_result.append(person) 

i.likelist = p_result 
関連する問題