Php TypeError:字符串索引必须是整数,而不是str-OpenErp
我使用的是Php TypeError:字符串索引必须是整数,而不是str-OpenErp,php,python,integration,openerp,prestashop,Php,Python,Integration,Openerp,Prestashop,我使用的是prestashop-openerp连接器模块,但当我尝试从网站导入数据时,会出现以下错误回溯: File "/usr/prestaconnect/openerp-connector/connector/queue/worker.py", line 122, in run_job job.perform(session) File "/usr/prestaconnect/openerp-connector/connector/queue/job.py", line 460, i
prestashop-openerp
连接器模块,但当我尝试从网站导入数据时,会出现以下错误回溯:
File "/usr/prestaconnect/openerp-connector/connector/queue/worker.py", line 122, in run_job
job.perform(session)
File "/usr/prestaconnect/openerp-connector/connector/queue/job.py", line 460, in perform
self.result = self.func(session, *self.args, **self.kwargs)
File "/usr/prestaconnect/prestashoperpconnect/prestashoperpconnect/unit/import_synchronizer.py", line 663, in import_batch
importer.run(filters=filters, **kwargs)
File "/usr/prestaconnect/prestashoperpconnect/prestashoperpconnect/unit/import_synchronizer.py", line 202, in run
return super(PaymentMethodsImportSynchronizer, self).run(filters, **kwargs)
File "/usr/prestaconnect/prestashoperpconnect/prestashoperpconnect/unit/import_synchronizer.py", line 176, in run
record_ids = self._run_page(filters)
File "/usr/prestaconnect/prestashoperpconnect/prestashoperpconnect/unit/import_synchronizer.py", line 186, in _run_page
self._import_record(record_id, **kwargs)
File "/usr/prestaconnect/prestashoperpconnect/prestashoperpconnect/unit/import_synchronizer.py", line 206, in _import_record
('name', '=', record['payment']),
TypeError: string indices must be integers, not str
在模块代码中,我看到以下内容:
class PaymentMethodsImportSynchronizer(BatchImportSynchronizer):
_model_name = 'payment.method'
def run(self, filters=None, **kwargs):
if filters is None:
filters = {}
filters['display'] = '[id,payment]'
return super(PaymentMethodsImportSynchronizer, self).run(filters, **kwargs)
def _import_record(self, record):
ids = self.session.search('payment.method', [
('name', '=', record['payment']),
('company_id', '=', self.backend_record.company_id.id),
])
if ids:
return
self.session.create('payment.method', {
'name': record['payment'],
'company_id': self.backend_record.company_id.id,
})
我不知道实际发生了什么,我需要一些说明,因为我没有开发这个模块,我对prestashop-openerp集成还不熟悉
任何帮助都将不胜感激,提前谢谢 您的回溯准确地告诉您需要知道的内容 看起来您正在向_import_记录而不是dict传递字符串。为什么不检查一下
记录是什么
调试正在发生的事情的最简单方法是使用Python调试器。就在_import_record函数内部,ids=…
put,import pdb;pdb.set_trace()
。然后像往常一样运行程序,pdb将在该行中断,然后您可以分析记录设置为什么
请参阅:或pdb和Python调试简介。如果您使用的代码不是自己编写的,那么您将需要此技能 您的回溯准确地告诉您需要知道的内容
看起来您正在向_import_记录而不是dict传递字符串。为什么不检查一下记录是什么
调试正在发生的事情的最简单方法是使用Python调试器。就在_import_record函数内部,ids=…
put,import pdb;pdb.set_trace()
。然后像往常一样运行程序,pdb将在该行中断,然后您可以分析记录设置为什么
请参阅:或pdb和Python调试简介。如果您使用的代码不是自己编写的,那么您将需要此技能 如果您试图调试其他人的代码或理解第三方模块,您应该使用python调试器pdb
嗨,我现在正在使用pdb,仍然没有任何线索,我将继续测试并给您回信。传递给\u import\u record()的记录是什么
end up holding?问题是,由于依赖关系,它给了我一个错误,我的意思是,在Pythonca中的pdb上运行“openerp模块”时,它找不到属于“openerp模块”本身的模块,无法执行它:(,有没有调试它的想法?如果你试图调试其他人的代码或理解第三方模块,你应该使用python调试器pdb
嗨,我现在正在使用pdb,仍然没有线索,我将继续测试并给你回信。传递给\u import\u record()的记录是什么
end up holding?问题是,由于依赖关系,它给了我一个错误,我的意思是,在Pythonc中的pdb上运行它时,它找不到属于“openerp模块”本身的模块:(,有没有调试它的想法?