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

标签 php python json python-3.x

我有一个 Python 脚本,它使用 print 将一堆文本输出到 PHP。和 shell_exec() .我还必须在两者之间发送一个字典,以存储一些脚本信息。这是我的代码的简化版本:

Python

import json

# Lots of code here

user_vars = {'money':player.money}
print(user_vars)
print(json.dumps(user_vars))

输出(在PHP中):
{'money': 0} {"money": 0}

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

PHP

如果我想使用 JSON( print(json.dumps(user_vars)) ,它输出 {"money": 0} ,注意双引号)来传输数据,这是我将使用的代码:
<?php
$result = shell_exec('python JSONtest.py');
$resultData = json_decode($result, true);
echo $resultData["money"];
?>

我有两个问题:
  • 有什么理由我应该使用 print(user_vars)代替print(json.dumps(user_vars)) , 或相反亦然?
  • 有没有其他的转账方式user_vars/json.dumps(user_vars)无需在最终的 PHP 页面中看到它,而不必将它们转储到实际中 .json文件?还是我以错误的方式解决这个问题?

  • 我的代码基于问题 here .

    最佳答案

    这段代码可以解决问题。

    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
    ?>
    

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

    关于php - 如何在 Python 和 PHP 之间传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47441197/

    相关文章:

    python - PySpark to_json 丢失了数组中结构的列名

    Python:使用正则表达式在GUI中搜索功能需要全局变量,但出现UnboundLocal错误

    javascript - 将数据传递到 d3js

    java - Gson:java.lang.StackOverflowError: null

    php - 删除标签但在 php 中保留标签之间的字符串

    javascript - 如果检查了 php 条件,则通过 JQuery 将类添加到元素

    php - MySQL、PHP : echo IDs from smalest to largest

    php - Laravel - session 数据在注销/登录后仍然存在,即使对于不同的用户也是如此

    python - Airflow mysql 到 gcp Dag 错误

    php - Symfony(PHP 框架)和 MongoDB(或任何基于 json 的数据库)