Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

264
Visualizações
Cómo usar correctamente JSON.stringify con un objeto PHP devuelto JS

Tengo un script php que ejecuta un script de python y obtuve un objeto como este:

 {'data': [{'article title', 'article description', 'timestamp', 'weburl'}], 'status': 200, 'answers': [1]}

Como sé, tengo que transformar esto en un javascript JSON de javascript object de javascript.

Y lo intenté como

 myjs = JSON.parse(JSON.stringify(answer))

y

 JSON.stringify(answer)

o incluso simplemente concatenar con " al principio y al final. Pero tampoco obtuve un buen resultado. Entonces, ¿cuál es la forma correcta? ¿O debería cambiar algo en el lado de php?

La parte php es simplemente esto:

 if ($_GET['times'] == 0) { $command = escapeshellcmd('python3 feed.py '. $_GET['subject']); $output = json_encode(shell_exec($command)); header('Content-type: application/json'); echo $output; }

Esto está en mi script de python :

 #!/usr/bin/python import requests import json import html import sys requestpost = requests.post('NewsSource') response_data = requestpost.json() data = [] status = 0 answers = 0 out = {"data":[], "status":[], "answers":[0]} searchterm = sys.argv[1] error = 0 if requestpost.status_code == 200: out["status"] = 200 for news in response_data["news"]: try: currentNews = json.loads(news) if ((html.unescape(currentNews["title"]) != "Array" and html.unescape(currentNews["title"]).lower().find(searchterm.lower()) != -1) or (html.unescape(currentNews["description"]).lower().find(searchterm.lower()) != -1)): outnews = {html.unescape(currentNews["timestamp"]), html.unescape(currentNews["title"]), html.unescape(currentNews["description"]), html.unescape(currentNews["link"])} out["data"].append(outnews) out["answers"][0] = out["answers"][0] +1 except: error += 1 else: out["status"] = 404 print (out)
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Cambie el script de Python para que imprima JSON en lugar del formato de Python.

 print(json.dumps(out))

Sin embargo, los conjuntos no están en JSON, así que cambia outnews a una lista.

 outnews = [html.unescape(currentNews["timestamp"]), html.unescape(currentNews["title"]), html.unescape(currentNews["description"]), html.unescape(currentNews["link"])]

Luego, el script PHP simplemente puede devolver eso al cliente.

 if ($_GET['times'] == 0) { $command = escapeshellcmd('python3 feed.py '. $_GET['subject']); header('Content-type: application/json'); passthru($command); }

Si passthru() no funciona, puede probar con su shell_exec() original. No necesita llamar a json_encode() porque ya está codificado.

 if ($_GET['times'] == 0) { $command = escapeshellcmd('python3 feed.py '. $_GET['subject']); $output = shell_exec($command); header('Content-type: application/json'); echo $output; }
about 4 years ago · Juan Pablo Isaza Relatório

0

Además, si quiero recuperar todas las noticias que cambiar out devolverlas de esta manera:

 out = [] error = 0 status = 0 nrOfResults = 0 if requestpost.status_code == 200: status = 200 for news in response_data["news"]: try: currentNews = json.loads(news) if ((html.unescape(currentNews["title"]) != "Array" and html.unescape(currentNews["title"]).lower().find(searchterm.lower()) != -1) or (html.unescape(currentNews["description"]).lower().find(searchterm.lower()) != -1)): outnews = [html.unescape(currentNews["timestamp"]), html.unescape(currentNews["title"]), html.unescape(currentNews["description"]), html.unescape(currentNews["link"])] out.append(outnews) nrOfResults = nrOfResults +1 except: error += 1 else: status = 404 out.append(status) out.append(nrOfResults) #outnews = [html.unescape(currentNews["timestamp"]), html.unescape(currentNews["title"]), html.unescape(currentNews["description"]), html.unescape(currentNews["link"])] print(json.dumps(out))

que el último elemento de la matriz js será el número de resultados y el anterior será el estado del enlace de origen.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda