>

내가하는 일에 대한 많은 문서를 찾을 수 없기 때문에이 질문의 제목을 정확히 무엇인지 확실하지 않았습니다. 이것이 다른 많은 질문과 관련된 문제를 결합한다고 생각할 때 이것이 중복되면 사과하지만 해결책을 찾지 못했습니다.

API를 호출하고 반환 본문에 JSON 데이터를 제공하는 Python 스크립트가 있습니다. 이 JSON 데이터를 가져 와서 웹 페이지에 인쇄하고 싶습니다 (현재는 나중에 특정 항목을 가져 오게 됨). 작동하고 있음을 알 수 있습니다.

지금, 파이썬 스크립트는 다음과 같이 끝납니다 :

r = requests.get(url=URL, params=PARAMS)
print (r.json())

PHP는 다음과 같이 데이터를 가져옵니다

   $returned = shell_exec("python3 /var/www/eaton/BackEnd/GenerateCall.py ${arguments here}");
    $recipe = explode(',', $returned);
    echo "<html>";
    echo "<head>";
    echo "</head>";
    echo "<body>";
    echo "<pre>";
    echo $returned."<br>";
    echo json_encode((json_decode($returned)), JSON_PRETTY_PRINT);
    echo "</pre>";
    echo "<br>";
    echo "</body>";
    echo "</html>";

페이지의 내 출력은 "널"입니다. 한 번에 JSON 데이터 인쇄 텍스트가 있었지만 (분해, 디코딩 및 인코딩 방법 없음) 문자열 일뿐이며 문자열에서 값을 추출 할 수 없었습니다.

이 데이터를 JSON 형식으로 가져 와서 전체 배열을 인쇄하는 가장 쉬운 방법은 무엇입니까? 쉘에서 파이썬 스크립트를 실행하면 데이터가 올바르게 출력되는 것처럼 보이므로 문제는 PHP에 있다고 생각합니다.

TIA.


  • 답변 # 1

    $returned 가 없을 때 문제가 무엇인지 말하기 어렵다  산출. 만약에 $returned  variable은 json 문자열이며 출력하고 내용 유형 헤더를 설정합니다. 당신은 html 가 필요하지 않습니다  API로 작업하는 경우 태그를 사용합니다.

    $returned = shell_exec("python3 /var/www/eaton/BackEnd/GenerateCall.py ${arguments here}");
    header('Content-Type: application/json');
    echo $returned;
    exit;
    
    

관련 자료

  • 이전 javascript - 함수와 매개 변수로 쿼리 문자열 구문 분석을 이해하지 못합니다
  • 다음 mongodb - 배열의 마지막 객체를 쿼리