2016-05-01 19 views
0

私は、python 2.7.11経由でオンラインアカウントにログインする際に非常に困っています。私はそれを理解しようと多くの時間を費やし、短いコードを何度も何度も繰り返しました。誰かがこれで私を助けてくれたら、私はあなたを謙虚な僕にします。私は "NameError:name 'username'が定義されていません"エラーを受信し続ける

私のコードは次のとおりです。私はエラーを取得する

import requests 

with requests.Session() as c: 
    url = "https://www.matchbook.com/bpapi/rest/security/session/" 
    login_data = { 
     username: "Marcel", 
     password: "*******" 
    } 
    c.post(url,data = login_data) 
    page = c.get("https://www.matchbook.com/bpapi/rest/security/session/") 
    print page.content 

Traceback (most recent call last): 
    File "<stdin>", line 4, in <module> 
NameError: name 'username' is not defined 

私も変数として、ユーザー名とパスワードの変数を定義し、反転して、ユーザ名とパスワードのキーのを入れて試してみました辞書のカンマ。

私は応答を取得するには:

<Response [415]> 
{"errors":[{"messages":["Please login to continue"]}]} 

すべてのヘルプ、してください!

答えて

2

おそらく意味:あなたは変数usernameを検索し、それをキーとして値だ使用しようとしている何

login_data = { 
    "username": "Marcel", 
    "password": "*******" 
} 

username変数がないため、NameErrorが表示されます。

+0

Jup、私はそれをしました!それは私の質問の第二部です:) –

+0

@MarcelHattingh - 一般的に、次のリクエストではログイン応答の一部を使用する必要があります。私は特定のAPIを知らないのですが、通常は初期のログインレスポンスから取得できる値でいくつかのヘッダー(またはおそらくはクッキー----,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, – mgilson

+0

ご協力いただきありがとうございますが、下記のAlexの回答がうまくいきました。だから私はヘッダーやクッキーが必要なように見えません!ありがとう、あまりにもtho! :) –

1

c.post(url,data = login_data)変更datajsonデータはJSONエンコードされている必要があります。これまでのやり方はエンコードされているためです。

requestsの古いバージョンの場合は、data = json.dumps(login_data)を使用してください。

+0

Whattttttt、それは働いた。アレックスホール。あなたは私の一日をしなかった。あなたは私の週を作った。あなたは最高の一日を期待しています:) –

関連する問題