将json数据从python发送到php

时间:2015-02-27 04:49:29

标签: php python json

我使用以下代码从python程序发送json数据

import json
import requests

data = {"temp_value":132}
data_json = json.dumps(data)
payload = {'json_playload': data_json}
r = requests.get('http://localhost/json1/js2.php',data=payload)

使用以下代码在php服务器端接收它。

<?php

if($_GET['temp_value']) {
    $temp_value = $_GET['temp_value'];
    echo $temp_value;

  #  $data = array($id, $description);
   $arr=json_decode($temp_value,true);

   } else {
echo "not found";}
// Connect to MySQL
    include("dbconnect.php");

    // Prepare the SQL statement
    $SQL = "INSERT INTO test1.temperature1 (temp_value) VALUES ('$arr')";    

    // Execute SQL statement
    mysqli_query($dbh,$SQL);
    Echo "<a href=http://localhost/json1/review_data.php><center><u><b><h1>Manage values<h1><b><u></center></a>"

?>

以及我实现的json数据,如Id,时间和日期也会在我发送数据时在数据库中更新。但是这里发生的事情就像每当我从python程序发送数据时它赢得了#给出任何错误,当我在数据库和php页面中看到时,只插入了0(零)值,但是时间和id都会更新。请有人建议我使用正确的代码和方法。

2 个答案:

答案 0 :(得分:0)

import json
import requests

data = {"temp_value":132}
data_json = json.dumps(data)
payload = {'json_playload': data_json}
r = requests.get('http://localhost/json1/js2.php',data=payload)
print(r.url)//http://localhost/json1/js2.php

Json数据没有传入php.Check你的python代码

payload = {'key1': 'value1', 'key2[]': ['value2', 'value3']}
r = requests.get("http://httpbin.org/get", params=payload)
print(r.url)

结果:     http://httpbin.org/get?key1=value1&key2%5B%5D=value2&key2%5B%5D=value3

你必须使用喜欢     payload = {“temp_value”:132}

答案 1 :(得分:0)

试试这个:

<?php
  $json_payload = json_decode($_GET['json_payload']);
  $temp_value   = $json_payload['temp_value'];
?>

执行此操作时:

r = requests.get('http://localhost/json1/js2.php',data=payload)

您正在发送包含数据的JSON字符串表示形式的get请求:

'{"temp_value": 132}'

存储在名为json_payload

的get参数中

因此,在客户端,您必须检索json_payload参数的内容并解码其中的JSON字符串才能检索temp_value

或者,你可以这样做:

payload = {"temp_value":132}
r = requests.get('http://localhost/json1/js2.php',data=payload)

保持您的PHP代码不被修改。