因此,我想将我的刮取项传递到一个php脚本中,我的管道中有:
class TalkPhpPipeline(object):
def process_item(self, item, spider):
toPHP = json.dumps(dict(item))
os.system( '/usr/bin/php script.php %s' % toPHP)
return item
在我的脚本.php在
^{pr2}$蜘蛛和脚本.php很好,但是我的脚本.php只看到一个长度为7的srting,如{title:
,如果我用item['title']
替换toPHP,那么php端会看到[usomewhere only we know]
,我真正想传递给php的是一个字符串,如下所示:
{'title': [u'somewhere only we know']}
或者只是{'title': ['somewhere only we know']}
,当然,对于我的项包含的所有其他字段,我该如何做到这一点?在
谢谢
shell弄乱了命令行中的引号。因此,请使用另一个函数(如^{} ),该函数允许您指定单个参数:
请注意,除非JSON非常短,否则最好用不同的方式(例如通过管道)将其传递给PHP,因为操作系统有命令行长度限制。在
在Python中,可以使用
subprocess.Popen
类将JSON传递到PHP脚本,PHP脚本可以使用fgets(STDIN)
检索JSON。在相关问题 更多 >
编程相关推荐