Error: Document attached to child table must be a dict or BaseDocument

Hi all,
I have these error when i call these method:
def get_service_actions(self):
if self.service :
sa = frappe.get_list(‘Service Action’ ,fields=[“*”], filters={‘parent’:self.service})
self.service_request_action =[]
for value in sa:
child = self.append(‘service_request_action’, {})
child.action=value.action
child.cost=value.cost
child.cost_can_be_changed=value.cost_can_be_changed
child.place=value.place
child.estimated_time=value.estimated_times
child.start_date=date.today()
self.calc()
return self.service_request_action

Traceback (most recent call last):
File “/home/mayssaa/crm1/apps/frappe/frappe/app.py”, line 55, in application
response = frappe.handler.handle()
File “/home/mayssaa/crm1/apps/frappe/frappe/handler.py”, line 19, in handle
execute_cmd(cmd)
File “/home/mayssaa/crm1/apps/frappe/frappe/handler.py”, line 40, in execute_cmd
ret = frappe.call(method, **frappe.form_dict)
File “/home/mayssaa/crm1/apps/frappe/frappe/init.py”, line 896, in call
return fn(*args, **newargs)
File “/home/mayssaa/crm1/apps/frappe/frappe/handler.py”, line 71, in runserverobj
frappe.desk.form.run_method.runserverobj(method, docs=docs, dt=dt, dn=dn, arg=arg, args=args)
File “/home/mayssaa/crm1/apps/frappe/frappe/desk/form/run_method.py”, line 20, in runserverobj
doc = frappe.get_doc(json.loads(docs))
File “/home/mayssaa/crm1/apps/frappe/frappe/init.py”, line 596, in get_doc
return frappe.model.document.get_doc(arg1, arg2)
File “/home/mayssaa/crm1/apps/frappe/frappe/model/document.py”, line 50, in get_doc
return controller(arg1, arg2)
File “/home/mayssaa/crm1/apps/frappe/frappe/model/document.py”, line 86, in init
super(Document, self).init(arg1)
File “/home/mayssaa/crm1/apps/frappe/frappe/model/base_document.py”, line 52, in init
self.update(d)
File “/home/mayssaa/crm1/apps/frappe/frappe/model/base_document.py”, line 75, in update
self.set(key, value)
File “/home/mayssaa/crm1/apps/frappe/frappe/model/base_document.py”, line 122, in set
self.extend(key, value)
File “/home/mayssaa/crm1/apps/frappe/frappe/model/base_document.py”, line 148, in extend
self.append(key, v)
File “/home/mayssaa/crm1/apps/frappe/frappe/model/base_document.py”, line 143, in append
raise ValueError, "Document attached to child table must be a dict or BaseDocument, not " + str(type(value))[1:-1]
ValueError: Document attached to child table must be a dict or BaseDocument, not type ‘list’

Where is the problem such it works sometimes?