将数据从python发送到php,并将json数据从php恢复到python

时间:2015-06-20 14:21:31

标签: php python json

这是我的第一个问题,因为我最近加入了该网站,我真的需要帮助。 我想要做的是将数据从python发送到php,然后,在php中,我连接到数据库,我正在测试一个值,然后我将通过在php中创建的json将数据发送回python 。 所以我使用的代码是: Python方面:

import requests
import  json
getdata = {'cpu': '1324324', 'tempvalue': '34543543'}
resp = requests.post("http://localhost/try.php", params=getdata)
r = requests.get('http://localhost/try.php')#.json()
getdata=r.json()
print(getdata['cpu'])
print(getdata['tempvalue'])

对于这部分,post方法正常工作。但get get方法不起作用,我不断收到错误:

ValueError: Expecting value: line 2 column 2 (char 3)

PHP方面: 我不会正确连接数据库代码,因为它工作正常。

$sql= "SELECT * FROM temp WHERE cpu = '".$value1."'";
$rs=$conn->query($sql);
#$check=mysqli_query("SELECT * FROM temp WHERE cpu = '".$value1."'");
if ($rs === TRUE) {
    $row_cnt = $result->num_rows;
    if($row_cnt == 1){
        $result["cpu"] = $value1;#$result is predefined in the script.
        $result["tempvalue"] = $value2;

    }}  
else{
    echo "did not find";
    $response["error"] = "error";
    }

json_encode($response);

这就是我在做什么。代码中有什么问题吗?python脚本是否有任何数据?或者我应该添加一些内容吗?并且php脚本是对的吗?我真的把json发回给python ?谢谢大家。

2 个答案:

答案 0 :(得分:0)

我找到了问题的答案,并且像往常一样非常容易。

我们必须做的是将php文件的内容类型添加为json,以便python脚本知道应该读取什么类型的数据。所以要在PHP脚本中添加的代码行是:

header('Content-Type: application/json');

它必须位于文件的开头。

答案 1 :(得分:0)

问题出在PHP方面。

您只返回getattr数组,但您的数据实际上位于$response数组中。

因此,当一切都成功时,json响应无效,因为没有创建$result数组。

您需要调整PHP代码,这是一个例子:

$response

您还有其他一些问题,例如您没有使用参数化查询,因此您的代码会受到SQL注入的影响而忽略了第一个查询的结果。