2017-05-11 3 views
0

私はkairos顔認識APIを使用しようとしています。ローカルファイルをアップロードする必要があります。 apiのドキュメントによると、画像パラメータは「公開アクセス可能なURLまたはBase64でエンコードされた写真」である必要があります。 example codeでは、urllib2.requestにはdataのパラメータが使用されています。これには、values文字列が渡されます。これはjsonだと思います。私の質問は、URLの代わりにローカルファイルを与えるにはどうすればいいですか?"http://media.kairos.com/kairos-elizabeth.jpg"urllib2リクエストでファイルをアップロードするには

+0

私たちがあなたのコードを見ることができれば、私たちは簡単に答えることができます。私はまた、あなたが求めているものについて明確ではない。私は全体的な質問を得るが、あなたはローカルファイルパスを渡そうとしましたか?また、Python 2.7またはPython 3+を使用していますか?また、あなたのファイルシステムにも多少依存しますが、クロスプラットフォームにしたいのではないでしょうか。 r = urllib2.urlopen( 'file://' + some_path)のようなものが動作するはずです。いくつかの質問に答えることができ、コードを投稿して更新することができれば、より多くのお手伝いをすることができます。 – Afflicted

答えて

0

ローカルイメージを読み取り、base64エンコードを行うことができます。次に、それをあなたが形成する "値"の "イメージ"のキーと値のペアとして渡すことができます。

以下はサンプルコードです。 urllib2は使用しません。しかし、あまりにも違います。

with open ('messi.jpg','rb') as imgFh: 
    img = imgFh.read() 

values = {"image": b64encode(img), 
    "subject_id": "Messig", 
    "gallery_name": "faces"} 

この「値」をリクエストする際に「データ」として渡すことができます。それは動作するはずです。

関連する問題