私のプロジェクトの範囲は、python スクリプトからリモート php スクリプトに特定の値を渡すことです。
連想配列を生成する python スクリプトがあります。例 (すでに JSON エンコード済み):
{"FRONT": "19.50", "RACK": "17.63", "REAR": "21.06", "ROOM": "15.6"}
この連想配列をリモート PHP スクリプトに渡す必要があります。このチュートリアルに従いました: http://nonstopblah.wordpress.com/2010/07/13/python-to-php-via-json/
HTTP 応答で 200 を取得しますが、php スクリプトでは POST 変数が空のようです
ここに私のコード:
bulkData = json.dumps(temp, ensure_ascii = 'False')
# ensure_ascii is false as data is in unicode and not ascii encoding , use this if data is in any other encoding
print bulkData
print '\nHTTP Response'
headers = { "charset":"utf-8",
"Accept": "text/plain"}
conn = httplib.HTTPConnection(report_host)
postData = urllib.urlencode({'results':bulkData})
conn.request("POST", report_path, postData,headers)
response = conn.getresponse()
text = response.read()
print "Response status: ",response.status,"\n",text
conn.close()
これは PHP スクリプトです。
if( isset($_POST['results']) )
{
$data = json_decode($_POST['results']);
print_r($data);
}
else
{
echo 'Nothing to listen.';
print_r($_POST);
}
これは私のpythonスクリプトの出力です(リモート応答付き):
{"FRONT": "20.44", "RACK": "18.88", "REAR": "21.25", "ROOM": "17.7"}
HTTP Response
Response status: 200
Nothing to listen.Array
(
)
それを行うよりスマートな方法はありますか?ここで何が欠けていますか?
親切な回答をいただきありがとうございます。