我在服务器上有一个php
文件,以mysql
格式打印json
数据库中的一些数据。
当我在浏览器中运行php
文件时,我可以看到json
数组。现在我想在json
文件中获取python
数组。有办法吗?
这是我正在使用的代码
import subprocess
import json
import codecs
proc = subprocess.Popen("http://www.rpi-connect.esy.es/getappliances?room=1", shell=True, stdout=subprocess.PIPE)
script_response = str(proc.stdout.read().decode('utf8'))
print(script_response)
答案 0 :(得分:1)
我在尝试了很多不同的python库之后终于得到了答案
import json
import urllib.request
url = "http://example.com/your-filename.php"
x = urllib.request.urlopen(url)
raw_data = x.read()
encoding = x.info().get_content_charset('utf8') # JSON default
print(raw_data) #this is data in string format
data = json.loads(raw_data.decode(encoding))
print(data) #this would be your json data
这适用于python 3.4。 for python 2.7尝试使用json.load()而不是json.loads()
答案 1 :(得分:0)
使用以下命令运行代码并将其标准输出存储到变量:
import subprocess
proc = subprocess.Popen("php /path/to/your/script.php", shell=True, stdout=subprocess.PIPE)
script_response = proc.stdout.read()
如果你在python中也需要json中的数据:
import json
data = json.loads(script_response)
答案 2 :(得分:0)
您可以通过让PHP脚本将JSON输出到服务器上的文件来实现此目的,然后让您的python脚本从文件中读取该JSON。
你可以这样做:
<?php
$json = json_encode('your data');
$file = '/tmp/json-file';
file_put_contents($file, $json);
import json
with open('/tmp/json-file') as data_file:
data = json.load(data_file)
# do whatever you need to do with data here