2014-09-13 3 views
0

배열을 RESTful PHP API에 POST하려고합니다. 아이디어는 (n> 0) 개의 레코드를 허용하는 것이며, 각각은 remote_id, dimension_id 및 메트릭을 포함합니다. 예상대로, 내 서버 측이 Python에서 다차원 배열 게시

<?php 
print_r($_POST); 
?> 

이 반환 PHP

의 여기

data = urllib.urlencode([ 
      ("remote_id", 1), 
      ("dimension_id", 1), 
      ("metric",metric1), 
      ("remote_id", 1), 
      ("dimension_id", 2), 
      ("metric",metric2) 
      ]) 
    response = urllib2.urlopen(url=url, data=data) 

그리고 :

은 여기 내 클라이언트 파이썬 내가 모든 덮어 쓰기 것 같은

Array 
(
    [remote_id] => 1 
    [dimension_id] => 2 
    [metric] => 16 
) 

그것은 나에게 보인다 마지막 값으로 remote_id, dimension_id 및 측정 항목의 인스턴스를 생성합니다. 모두 동일한 이름의 키가 있습니다.

이 작업을 수행하는 올바른 방법은 무엇입니까? 고유 키 (1_remote_id, 1_dimension_id, 1_metric + 2_remote_id, 2_dimension_id, 2_metric)로 끔찍한 방법을 볼 수는 있지만 잘 확장되지 않습니다.

는 나는이 PHP 같은 후 해요,하지만 파이썬에서 추측 :

<?php 
$observations = array(); 
$observations[] = [ 
    "remote_id" => "a1", 
    "metric_id" => "foo", 
    "metric" => 1 
]; 
$observations[] = [ 
    "remote_id" => "a1", 
    "metric_id" => "bar", 
    "metric" => 2 
]; 
?> 

가 어떤 조언을 감사합니다!

답변

0

(나는 LOOONG 시간에 어떤 PHP를하지 않은)이 날을 인용하지 마십시오, 그러나 이것은 그냥 작동 할 수 있습니다

data = urllib.urlencode([ 
      ("remote_id[]", 1), 
      ("dimension_id[]", 1), 
      ("metric[]",metric1), 
      ("remote_id[]", 1), 
      ("dimension_id[]", 2), 
      ("metric[]",metric2) 
     ]) 

가 나는 어쨌든 시도를 줄 것이다 .

+0

[]을 문자열 외부에 넣으면 잘못된 구문이 표시됩니다 (예 : 'remote_id'[]). I 그들을두면 I이 얻을 내부 : 배열 ( [remote_id] => 배열 ( [0] => 1 [1] => 1 ) [dimension_id] => 배열 ( [0] => 1 [1] => 2 ) [측정] => 배열 ( [0] => 16 [1] => 매우 잘 보인다 ) 16 ) ! 감사 –