["python","odoo"]
dictionary update sequence element #0 has length 3; 2 is required

I want to add lines to the object account.bank.statement.line through other object But I get following error: "dictionary update sequence element #0 has length 3; 2 is required" Here is my code: def action_account_line_create(self, cr, uid, ids): res = False cash_id = self.pool.get('account.bank.statement.line') for exp in self.browse(cr, uid, ids): company_id = exp.company_id.id #statement_id = exp.statement_id.id lines = [] for l in exp.line_ids: lines.append((0, 0, { 'name': l.name, 'date': l.date, 'amount': l.amount, 'type': l.type, 'statement_id': exp.statement_id.id, 'account_id': l.account_id.id, 'account_analytic_id': l.analytic_account_id.id, 'ref': l.ref, 'note': l.note, 'company_id': l.company_id.id })) inv_id = cash_id.create(cr, uid, lines,context=None) res = inv_id return res I changed it on that but then I ran into this error: File "C:\Program Files (x86)\OpenERP 6.1-20121029-003136\Server\server\.\openerp\workflow\wkf_expr.py", line 68, in execute File "C:\Program Files (x86)\OpenERP 6.1-20121029-003136\Server\server\.\openerp\workflow\wkf_expr.py", line 58, in _eval_expr File "C:\Program Files (x86)\OpenERP 6.1-20121029-003136\Server\server\.\openerp\tools\safe_eval.py", line 241, in safe_eval File "C:\Program Files (x86)\OpenERP 6.1-20121029-003136\Server\server\.\openerp\tools\safe_eval.py", line 108, in test_expr File "<string>", line 0 ^ SyntaxError: unexpected EOF while parsing Code: def action_account_line_create(self, cr, uid, ids, context=None): res = False cash_id = self.pool.get('account.bank.statement.line') for exp in self.browse(cr, uid, ids): company_id = exp.company_id.id lines = [] for l in exp.line_ids: res = cash_id.create ( cr, uid, { 'name': l.name, 'date': l.date, 'amount': l.amount, 'type': l.type, 'statement_id': exp.statement_id.id, 'account_id': l.account_id.id, 'account_analytic_id': l.analytic_account_id.id, 'ref': l.ref, 'note': l.note, 'company_id': l.company_id.id }, context=None) return res
This error raised up because you trying to update dict object by using a wrong sequence (list or tuple) structure. cash_id.create(cr, uid, lines,context=None) trying to convert lines into dict object: (0, 0, { 'name': l.name, 'date': l.date, 'amount': l.amount, 'type': l.type, 'statement_id': exp.statement_id.id, 'account_id': l.account_id.id, 'account_analytic_id': l.analytic_account_id.id, 'ref': l.ref, 'note': l.note, 'company_id': l.company_id.id }) Remove the second zero from this tuple to properly convert it into a dict object. To test it your self, try this into python shell: >>> l=[(0,0,{'h':88})] >>> a={} >>> a.update(l) Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> a.update(l) ValueError: dictionary update sequence element #0 has length 3; 2 is required >>> l=[(0,{'h':88})] >>> a.update(l)