Odoo 10 python 数组列表调用元素

Odoo 10 python array list call element

@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]

如何调用元素?

 employee_array[0].count

 employee_array[0[count]] 

我尝试了所有组合,但都不起作用。 谢谢。

您应该使用 '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"]

你可以使用 print employee_array[count]["count"] :exemple

 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

中的每一项