2017-08-30 11 views
0

私は文字列形式で送信すると、ヘッダーにいくつかの値を受け入れるAPIをスクラップしようとしています。文字列形式で送信すると、400 Bad Requestが送信されます。フロートフォームscrapyにおけるヘッダは、このようなエラーを与える:Python ScrapyでHTTPヘッダーをFloatとして送信

self.headers = Headers(headers or {}, encoding=encoding) 
File "C:\Python27\lib\site-packages\scrapy\http\headers.py", line 12, in __init__ 
super(Headers, self).__init__(seq) 
File "C:\Python27\lib\site-packages\scrapy\utils\datatypes.py", line 193, in __init__ 
self.update(seq) 
File "C:\Python27\lib\site-packages\scrapy\utils\datatypes.py", line 229, in update 
super(CaselessDict, self).update(iseq) 
File "C:\Python27\lib\site-packages\scrapy\utils\datatypes.py", line 228, in <genexpr> 
iseq = ((self.normkey(k), self.normvalue(v)) for k, v in seq) 
File "C:\Python27\lib\site-packages\scrapy\http\headers.py", line 27, in normvalue 
return [self._tobytes(x) for x in value] 
File "C:\Python27\lib\site-packages\scrapy\http\headers.py", line 40, in _tobytes 
raise TypeError('Unsupported value type: {}'.format(type(x))) 
TypeError: Unsupported value type: <type 'float'> 
None 

誰もが任意の解決策や問題の直面similer種類がありますか?

答えて

5

まず、ヘッダーは常に文字列として送信されます。 int、bool、floatのようなヘッダーのデータ型はありません。

私はApiにヘッダX-RELOAD-TIME 2.0003355を送るかもしれませんが、それはfloatとして2.0003355を必要とするわけではありません。そして、それはライブラリがあなたのheadersでそう

headers["Name-Of-Float-Header"] = str(float_value) 

を確認し、その後、

を通過することができるはず呼んで文句を言っているものです
関連する問題