php数组多维到python多维dict
如何从curl post/get发送php多维数组,使用python获取并转换为多维dict: 要求: 支持php和cgi的web服务器 debian gnu/linux安装:php数组多维到python多维dict,php,python,curl,multidimensional-array,Php,Python,Curl,Multidimensional Array,如何从curl post/get发送php多维数组,使用python获取并转换为多维dict: 要求: 支持php和cgi的web服务器 debian gnu/linux安装: su aptitude install python-pip php5-curl pip install querystring-parser exit curl.class.php <?php class curl { public static function getURL($url, $param
su
aptitude install python-pip php5-curl
pip install querystring-parser
exit
curl.class.php
<?php
class curl
{
public static function getURL($url, $params = array(), $type = 'get', $curl_opts = array())
{
if(!function_exists('curl_init'))
die('curl module missing');
$type = trim(strtolower($type));
if(is_array($params) && count($params)>0)
$params = self::setParams($params);
$ch = curl_init();
if($type=='post')
{
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_URL, $url);
}
else
curl_setopt($ch, CURLOPT_URL, $url.$params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// set curl param options
if(is_array($curl_opts))
{
if(count($curl_opts)>0)
{
foreach($curl_opts as $key => $value)
curl_setopt($ch, $key, $value);
}
}
$result = curl_exec($ch);
return $result;
}
public static function setParams($array, $type = 'get')
{
$txt = '';
if(count($array)>0)
{
if($type=='get')
$txt.= '?';
$txt.= http_build_query($array);
}
return $txt;
}
}
?>
在浏览器中:
格式化输出:
{
'aitxitxe':
{
'aita':
{
'alabie': 'maite',
'semie': 'iban'
}
}
}
感谢:
允许改进,谢谢;) 两种语言都支持JSON来处理此类数据
使用这些库可能是个好主意。两种语言都支持JSON来处理此类数据
使用这些库可能是个好主意。这里似乎没有问题,只有一堆代码。这里似乎没有问题,只有一堆代码。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, cgi
from querystring_parser import parser
# request to dict
form = cgi.FieldStorage()
params = {}
for k in form.keys():
params[k] = form[k].value
# dict to query-string
def dict2querystring(dict):
text = ''
count = 0
for i in dict:
if count > 0:
text+= "&"
text+= str(i) + "=" + str(dict[i])
count += 1
return text
# request to query-string
params_text = dict2querystring(params)
# query-string to multi-dimensional dict
post_dict = parser.parse(params_text)
print "Content-type: text/plain\n"
print post_dict
sys.exit()
{
'aitxitxe':
{
'aita':
{
'alabie': 'maite',
'semie': 'iban'
}
}
}