2016-07-05 205 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"} 
]]}} 

我有兩個表IdeasLikes

我想顯示喜歡這個主意的人的名字。

在喜歡錶我已經存儲了user_id(誰喜歡想法)和idea_id是一個外鍵

我想用JSON

繼更換如表的user_id到該用戶的名字是我的代碼視圖文件..

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 

以下是模板..

{% for person in anidea.likelist %} 
    <span>{{person}}</span> 
{% endfor %} 

我收到錯誤「列表索引必須是整數,而不是str」

我是python和django的新手。需要幫助。

+0

用戶是由於某種原因的一系列字符串列表。 –

+0

是的。我正在使用外部Web服務。 – Shri

回答

1

首先這裏我猜all_emp['data'].['users']必須是all_emp['data']['users']d["employeeId"] == person for d in all_emp['data']['users']這裏d是一個只有一個元素的列表,然後該元素具有所有的僱主數據。

因此,作爲一個快速修復你可以試試這個:

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 
相關問題