根据这个问题,Python通过过滤器在数组中查找值
这就是我所做的
data = {}
for result in results:
if 'stackoverflow.com' in result['serp_url']:
data['url'] = result['serp_url']
data['rank'] = result['serp_rank']
data['query'] = result['query']
print(data)
exit
这是PHP代码
$test = shell_exec("python3 py.py");
var_dump($test);
这是输出
/home/user/Desktop/pyphp/index.php:4:string '{'url': 'https://stackoverflow.com/', 'rank': 1, 'query': 'stackoverflow'}
{'url': 'https://www.quantcast.com/stackoverflow.com', 'rank': 36, 'query': 'stackoverflow'}
' (length=168)
当我使用json_decode($test)
时,我得到null作为输出。
在PHP中使用Python的json或数组输出的最佳方式是什么?
4条答案
按热度按时间ecr0jaav1#
谢谢大家的意见!根据这些,我想办法解决.
Python脚本
PHP脚本
产出
hgb9j2n62#
你甚至不需要使用Python的Json包。这是一个小的tweek。用Python和PHP代码。
你的Php文件会有这样的代码
和结果在我的终端得到
{'aa': 100}
这是预期的,你想要的.现在重要的一点是shell_exec命令将给予你从字典转换的字符串,幸运的是,该字符串本身是一个JSON,这就是json_decode返回NULL的原因。
以上两个Snippet工作正常。检查它们。
jdzmm42g3#
Python文件:
PHP文件:
php的输出:
ac1kyiln4#
您正在生成的json无效(数组外部的自由对象和单引号之间的字符串)。
在你的python代码中,你应该在创建
data
对象时把它们附加到一个数组中。