最近用Python处理了一些json数据,但在过程中遇到一些问题,遂记录之。
1.Python Post json格式数据至服务器:
查阅了一些资料,大多是这么样的:
| 12
 3
 4
 5
 6
 7
 8
 
 | __author__ = 'jiezhi'
 import urllib
 import urllib2
 
 data = {'name': 'jiezhi', 'age': '24'}
 ret = urllib2.urlopen(url='http://jiezhiblog.com/test.php', data=urllib.urlencode(data))
 print ret.read()
 
 | 
但是,到php那里往往是array类型的了。
经过几番折腾改用下面的代码:
| 12
 3
 4
 5
 6
 7
 8
 
 | __author__ = 'jiezhi'
 import urllib2
 import json
 
 data = {'name': 'jiezhi', 'age': '24'}
 ret = urllib2.urlopen(url='http://jiezhiblog.com/test.php', data=json.dumps(data))
 print ret.read()
 
 | 
2.在PHP端问题
用了改后的Python代码,却发现$_POST没有获取到数据,所以改用**file_get_contents(“php://input”)**来获取提交的数据:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | <?php$input = file_get_contents("php://input");
 var_dump($input);
 if ($input){
 print_r($input);
 $arr = json_decode($input,true);
 echo "arr";
 print_r($arr);
 }
 ?>
 
 | 
此时可以正确获取到提交的数据。