[PYTHON] 사전 갱신 시퀀스 요소 # 0은 길이가 3이고; 2가 필요합니다.
PYTHON사전 갱신 시퀀스 요소 # 0은 길이가 3이고; 2가 필요합니다.
다른 개체를 통해 account.bank.statement.line 개체에 줄을 추가하고 싶지만이 오류가 발생합니다. "사전 업데이트 시퀀스 요소 # 0 길이가 3이고 2가 필요합니다"
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
나는 그것을 변경했지만 다음이 오류가 만났다 :
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
암호:
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
해결법
-
==============================
1.잘못된 시퀀스 (목록 또는 튜플) 구조를 사용하여 dict 개체를 업데이트하려고했기 때문에이 오류가 발생했습니다.
잘못된 시퀀스 (목록 또는 튜플) 구조를 사용하여 dict 개체를 업데이트하려고했기 때문에이 오류가 발생했습니다.
cash_id.create (cr, uid, lines, context = None) 라인을 dict 객체로 변환하려고합니다 :
(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 })
이 튜플에서 두 번째 0을 제거하여이를 dict 객체로 올바르게 변환하십시오.
자신을 테스트하려면 이것을 파이썬 셸로 시도하십시오.
>>> 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) >>>
from https://stackoverflow.com/questions/14302248/dictionary-update-sequence-element-0-has-length-3-2-is-required by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 메모리에 큰 목록을 유지하는 대안 (파이썬) (0) | 2018.11.09 |
---|---|
[PYTHON] Linux의 Python 환경 변수 (0) | 2018.11.09 |
[PYTHON] csv 파일을 사전 목록으로 변환 (0) | 2018.11.09 |
[PYTHON] 아름다운 수프에 중첩 된 요소를 얻는 방법 (0) | 2018.11.09 |
[PYTHON] Django 템플릿에서 Humanize를 사용하여 "x 일 전"유형 시간을 표시하는 방법은 무엇입니까? (0) | 2018.11.09 |