2015-06-20 9 views
0

Это мой первый вопрос здесь, как я недавно присоединился к сайту, и я действительно нужна помощь в этом. Что я пытаюсь сделать, это отправить данные из питона на PHP, а затем, в PHP, я подключение к базе данных, где я тестирую значение, а затем я пришлю данные в питон через JSON, созданный в PHP. Таким образом, код, я использую это: Python сторона:отправки данных из питона в PHP, и получить обратно данные JSON из PHP на 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']) 

В этой части метод пост работает все right.but самого начала получить метод не работает, и я постоянно получаю ошибку:

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

И сторона РНР: я не правильно с подключением к базе данных кода, потому что он работает нормально.

$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); 

Так вот что я doing.Is там ничего плохого в коде? Является ли питон скрипт получать любые данные обратно? Или я должен добавить что-то к нему? И это PHP скрипт правильно? Могу ли я на самом деле отправки назад json to python? И спасибо вам всем.

+0

Можете ли вы показать полное отслеживающий ошибки питона? Это кажется ошибкой разбора json, но из информации, которую вы даете, трудно сказать. Вы также можете распечатать необработанный ответ 'r'. – Zac

+0

Хорошо, это трассировка, которую я получаю: Traceback (последний последний звонок): Файл «C: \ Users \ PC \ Documents \ Python \ send1.py», строка 22, в get = r.json() Есть другие строки, но ничего особенного об этом ValueError: Ожидающее значение: строка 2 столбец 2 (char 3) И когда я использую исключение, я получаю: Ожидающее значение: строка 2 столбец 2 (char 3) – damien220

ответ

0

Я нашел ответ на мой вопрос, и это было очень легко, как обычно.

Что нужно сделать, это добавить тип содержимого файла php в json, чтобы скрипт python знал, какой тип данных должен быть прочитан. Таким образом, строка кода для добавления в скрипт PHP:

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

Это должно быть в начале файла.

0

Проблема на стороне PHP.

Вы возвращаете массив $response, но ваши данные фактически находятся в массиве $result.

Итак, когда все прошло успешно, то ответ JSON является недействительным, поскольку не существует $response массива создан.

Вы должны настроить PHP код, вот один пример:

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"; 
    $result["error"] = "error"; 
    } 

json_encode($result); 

У вас также есть некоторые другие проблемы, как вы не используете параметризованные запросы, так что ваш код подлежит инъекцию SQL, и вы игнорируете результат первого запроса.

+0

Спасибо за помощь, но я проверяю свой код, и я не знаю, откуда пришел результат, я использую переменную ответа, а не результат. Вчера код работал, но сегодня, к сожалению, это не так и Я не знаю, почему. – damien220

Смежные вопросы