2017-09-26 20 views
0
@api.depends('employee_id') 
    def create_employee_report(self): 
     count = 0 
     employee_array = [] 
     employee_data = {} 
     for employee in self.env['hr.employee'].search([]): 
      if employee.socialsecurityno: 
       count = count + 1 
       employee_data ={'count':str(count),'sicil_no':employee.socialsecurityno} 
       employee_array.append(employee_data) 
       print employee_array 
       print employee_array[0][count] 

如何调用元素?Odoo 10 python数组列表调用元素

employee_array[0].count 

employee_array[0[count]] 

我尝试了所有的组合,但它无法正常工作。 谢谢。

+0

运行代码时出现什么错误? –

回答

1

您应该使用'print employee_array [0] [“count”]',因为'count'是您的字典的关键。如果你不把它保留在引号中,python会假定它是一个变量。我假设你总是希望根据你的代码从你的数组中打印第0个元素。

什么内部发生的for循环的一个例子片段:

>>> employee_array = [] 
>>> employee_data ={'count':"1",'sicil_no':"9704"} 
>>> employee_array.append(employee_data) 
>>> print employee_array 
[{'count': '1', 'sicil_no': '9704'}] 
>>> print employee_array[0]["count"] 
1 
>>> employee_data ={'count':"2",'sicil_no':"9705"} 
>>> employee_array.append(employee_data) 
>>> print employee_array 
[{'count': '1', 'sicil_no': '9704'}, {'count': '2', 'sicil_no': '9705'}] 
>>> print employee_array[0]["count"] 
1 

,也可以是你正在寻找:

>>> print employee_array[count] 

,而不是:

>>> print employee_array[0]["count"] 
+0

噢,谢谢你.. –

1

您可以使用print employee_array [count] [“count”]:示例

for employee in self.env['hr.employee'].search([]): 
      if employee.socialsecurityno: 
       count = count + 1 
       employee_data = {'count':str(count),'sicil_no':employee.socialsecurityno} 
       employee_array.append(employee_data) 
       print employee_array 

       print employee_array[count]["count"] 

打印employee_array中的每个项目