如何在Python和PHP之间传输数据

时间:2017-11-22 18:00:36

标签: php python json python-3.x

我有一个Python脚本,使用 NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NotificationChannels.TRIPS_CHANNEL_ID) .setSmallIcon(ICON_DRAWABLE) .setColor(TITLE_COLOR) .setContentTitle(FIRST_LINE_TEXT) // "Remote input" .setContentText(SECOND_LINE_TEXT); // "Try typing some text!" employeeDF.max("salary").groupBy("departmentId").show()向PHP输出一堆文本。我还必须在两者之间发送一个字典,以存储一些脚本信息。这是我的代码的简化版本:

的Python

print

输出(在PHP中):

shell_exec()

所以同样的事情,除了JSON有双引号。

PHP

如果我想使用JSON(import json # Lots of code here user_vars = {'money':player.money} print(user_vars) print(json.dumps(user_vars)) ,输出{'money': 0} {"money": 0} ,请注意双引号)来传输数据,这是我将使用的代码:

print(json.dumps(user_vars))

我有两个问题:

  1. 有什么理由我应该使用{"money": 0}代替 <?php $result = shell_exec('python JSONtest.py'); $resultData = json_decode($result, true); echo $resultData["money"]; ?> ,反之亦然?
  2. 有没有其他方法可以转移print(user_vars) / print(json.dumps(user_vars))而不必在最终的PHP页面中看到它而不必将它们转储到实际的user_vars文件中?或者我是以错误的方式解决这个问题?
  3. 我的代码基于问题here

1 个答案:

答案 0 :(得分:0)

这段代码可以解决问题。

的Python

import json
data = {'fruit':['oranges', 'apples', 'peaches'], 'age':12}
with open('data.json', 'w') as outfile:
    json.dump(data, outfile)

PHP

<?php
$string = file_get_contents("data.json");
$json_a = json_decode($string, true);
echo $json_a['age']; # Note that 'fruit' doesn't work:
                     # PHP Notice:  Array to string conversion in /var/www/html/JSONtest.php on line 4
                     # Array
?>

此方法仅适用于字符串,但它确实解决了我的问题,我可以绕过不使用列表/数组。