2012-06-28 9 views
9

content-type : application/json을 보낼 수있는 FormRequest를 만들려고합니다.Scrapy FormRequest sending JSON

yield FormRequest("abc.someurl.com", formdata=json.dumps({"referenceId":123,"referenceType":456}), headers={'content-type':'application/json'}, callback=self.parseResult2) 

나는 formdata =에서 양식 데이터를 처리 할 수 ​​json.dumps()를 사용하는 경우, 내가 오류가

"exceptions.ValueError: need more than 1 value to unpack"

난 그냥 사용할 수 없습니다입니다 : 여기

내가 시도 할 것입니다

formdata={"referenceId":123,"referenceType":456} 

양식 요청은 작동하지만 서버에서는 허용되지 않습니다.

import requests 
import json 
result = requests.post(url, json.dumps({"referenceId":123,"referenceType":456}), headers={'content-type':'application/json'}) 

위와 같이 python 명령 프롬프트에서 작동합니다.

아이디어가 있으십니까?

-KM

+2

전체 스택 추적은 무엇입니까 (오류)? –

답변

14

FormRequest은 HTML 양식을 시뮬레이션 (예를 들어은 application/x-www-form-urlencoded를는). 요청과 함께 단순히 POST 데이터를 보내고 싶어하는 것 같습니다. 'application/json'의 콘텐츠 유형을 언급 했으므로 다음과 같은 작업을 수행하고 싶을 것입니다.

request = Request(url, method='POST', 
        body=json.dumps(my_data), 
        headers={'Content-Type':'application/json'})