2013-07-06 3 views
0

최근 부분적으로 완료된 프로젝트가 나에게 주어졌으며 Bottle을 처음 사용했습니다. AJAX 요청 내에서 사전을 보내고 Bottle이 서버 측에있는 상황이 있습니다. 사전은 다음과 같이 보입니다 (JavaScript) :Python Bottle : 요청 내부의 배열 변수에 액세스하기 POST 데이터

그렇다면 파이썬에서이 데이터를 읽고 싶습니다. 배열을 가져올 수 없습니다. int를 잘 얻을 수 있습니다.

try: 
    myInt = int(request.forms.get('myInt')) 
    myArray = request.forms.getall('myArray') 

이에서 myArray에 대한 빈리스트 결과 : 나는 여전히 작동하지 않았다 나에게 가장 적합한 만든 무슨 여기에 몇 가지를 시도했지만했습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까? StackOverflow에 대한 비슷한 질문을 읽어 보았습니다.

나는 이것을 파이프 또는 다른 것으로 구분 된 문자열로 바꿀 수 있음을 알고 있지만 배열이 이와 같이 보낼 수 있는지보고 싶습니다.

감사합니다.

답변

1

사용 request.json :

try: 
    myInt = request.json['myInt'] 
    myArray = request.json['myArray'] 

(클라이언트가 application/jsoncontent-type을 설정하는 것입니다 가정합니다.)

가 여기에 좋은 example입니다.

+0

감사합니다. 나는 동시에 너무 많은 새로운 것들을 배우고있다. 나는 병 속에있는 "요구"로 무엇을 할 수 있는지, 그리고 내가 그것으로 무엇을해야 하는지를 아직 이해하지 못한다. 그러나 이것은 효과가있다. :) 시간 내 주셔서 다시 한번 감사드립니다. – MattM

+0

행복하게 도와 줬습니다! 나는'request.json'의 구현이 호출 될 때마다 전신을 파싱한다는 점을 지적하고자합니다. 그래서 한번만 호출하고 필요한 모든 속성을 꺼내는 것이 좋습니다. 나는 대답도 업데이트 할 것이다. –

+0

스크래치 - 방금 좀 더 자세히 점검했고, 파싱 된 값을 캐시한다고 생각합니다. 걱정할 필요가 없습니다. 발하다! :) –

1

이것이 유일한 문제인지는 모르겠지만 JSON 배열과 getall을 혼동스럽게 생각할 수도 있습니다. 여기, get하지 getall 사용해야합니다 내가 제대로 코드를 이해한다면, getallhttp://example.com/get?foo=1&foo=2에서 당신이, 같은 이름을 가진 여러 인수가있는 경우입니다

myArray = request.params.get('myArray') 

.

한편, myArray 변수는 배열에 대한 단일 참조 일뿐입니다.

호프가 도움이되기를 바랍니다. (문제가 해결되지 않더라도).

관련 문제