将刮取的项作为json传递给PHP脚本

2024-09-30 06:29:38 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我想将我的刮取项传递到一个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']},当然,对于我的项包含的所有其他字段,我该如何做到这一点?在

谢谢


Tags: 脚本only管道objecttitledefitemprocess
1条回答
网友
1楼 · 发布于 2024-09-30 06:29:38

shell弄乱了命令行中的引号。因此,请使用另一个函数(如^{}),该函数允许您指定单个参数:

subprocess.call(['/usr/bin/php', 'script.php', json.dumps(dict(item))])

请注意,除非JSON非常短,否则最好用不同的方式(例如通过管道)将其传递给PHP,因为操作系统有命令行长度限制。在

在Python中,可以使用subprocess.Popen类将JSON传递到PHP脚本,PHP脚本可以使用fgets(STDIN)检索JSON。在

相关问题 更多 >

    热门问题