在 Python 中从 JSON 响应中提取令牌

Rob*_*ood 3 python post json python-2.x python-2.7

我正在学习 Python,正在使用 MediaFire 的 API,并尝试自动化一些简单的流程。但是在通过 POST 获取会话令牌后,我遇到了一些困惑。问题是我不确定如何从响应中提取令牌。以下是获取会话令牌的调用:

import hashlib
import time
import urllib.request

token = hashlib.sha1()
token.update("calvinrock0406@gmail.comheaven3610255k592k2di4u9uok3e8u9pkfepjfoc809kfutv5z".encode('utf-8'))
token_dig = token.hexdigest()

with urllib.request.urlopen("https://www.mediafire.com/api/user/get_session_token.php?application_id=36102&signature=" + token_dig + "&email=calvinrock0406@gmail.com&password=heaven&token_version=2&response_format=json") as response:
    html = response.read()
Run Code Online (Sandbox Code Playgroud)

这是我从电话中得到的回复:

b'{"response":{"action":"user\\/get_session_token","session_token":"618679cd5046c48fface93dee366a1a07eacfefc5bce88173d5118bb3f128f539602dc54f6d667825a376bc2f86b41a5b1cbe178cd45dfcb4ddfc8e9652f7c529db233181655ec42","secret_key":"774329384","time":"1454700043.4884","ekey":"a84adbba31f9ae8ef717486616a97c63","pkey":"b4dfdc307d","result":"Success","current_api_version":"1.5"}}'
Run Code Online (Sandbox Code Playgroud)

对菜鸟的任何帮助将不胜感激

mid*_*ori 6

我建议使用 ,requests代替urllib, 并使用json()来处理响应:

import json
import hashlib
import requests

token = hashlib.sha1()
token.update("calvinrock0406@gmail.comheaven3610255k592k2di4u9uok3e8u9pkfepjfoc809kfutv5z".encode('utf-8'))
token_dig = token.hexdigest()

response = requests.get("https://www.mediafire.com/api/user/get_session_token.php?application_id=36102&signature=" + token_dig + "&email=calvinrock0406@gmail.com&password=heaven&token_version=2&response_format=json")

json_response = response.json()
print json_response["response"]["session_token"]
Run Code Online (Sandbox Code Playgroud)