如何通过php cURL发送2D数组

时间:2015-09-01 15:37:03

标签: php python curl multidimensional-array

我正在使用一个分布式系统,其中一个php应用程序向python应用程序发送一个post请求。

我的代码很简单:

$ch = curl_init();  

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);    
$output=curl_exec($ch);

我有一个2d php数组,看起来像:

array(3) { [0]=> array(2) { ["a"]=> 'aaa' ["token"]=> string(55) "146bf00b2cb8709" } [1]=> array(2) { ["a"]=> string(52) "bbb" ["token"]=> string(55) "146bf00b2cb96e74302" } [2]=> array(2) { ["a"]=> string(52) "ccc" ["token"]=> string(55) "146bf00b2cb96e6c422417" } }

我想通过php curl传输这个,但我不知道如何在python的另一端解码这个方法。

2 个答案:

答案 0 :(得分:1)

的PHP

// 2d array
$arr = array(array(1,2,3),array(4,5,6),array(7,8,9));
// 2d array into json
$json = json_encode($arr) // [[1,2,3],[4,5,6],[7,8,9]]
send($json)

import json
r = request.body # receives request from php
json = json.loads(r)
print json[0] # [1,2,3]

答案 1 :(得分:0)

  

curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

将您的请求编码为HTTP查询,并将您的数据转换为 multipart / form-data

python应用程序必须是HTTP服务器并且能够接收此请求。解码将由HTTP框架/模块完成。