吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 712|回复: 19
收起左侧

[已解决] Python求助~调用百度API

   关闭 [复制链接]
快乐的小驹 发表于 2024-1-20 17:40
本帖最后由 快乐的小驹 于 2024-1-21 10:29 编辑

当前代码:
[Python] 纯文本查看 复制代码
CLIENT_ID = "99999"  # 你的apikey,需要修改
CLIENT_SECRET = "99999"  # 你的Secret Key,需要修改

# 获取access_token
def get_access_token():
    auth_url = 'https://aip.baidubce.com/oauth/2.0/token'
    params = {
        'grant_type': 'client_credentials',
        'client_id': CLIENT_ID,
        'client_secret': CLIENT_SECRET,
    }
 
    response = requests.post(auth_url, data=params)
    data = response.json()
    access_token = data.get('access_token')
    if not access_token:
        raise "请输入正确的API_KEY 和 SECRET_KEY"
    return access_token

修改后的:
[Python] 纯文本查看 复制代码
#百度智能云账号,填写上自己的百度智能云开发帐号信息
with open('config.txt', 'r') as f:
    lines = f.readlines()

APP_ID = lines[0].strip('APP_ID:')  # strip()用于移除字符串首尾的空白字符
API_KEY = lines[1].strip('API_KEY:')
SECRET_KEY = lines[2].strip('SECRET_KEY:')

# 获取access_token
def get_access_token():
    auth_url = 'https://aip.baidubce.com/oauth/2.0/token'
    params = {
        'grant_type': 'client_credentials',
        'client_id': API_KEY ,
        'client_secret': SECRET_KEY ,
    }
 
    response = requests.post(auth_url, data=params)
    data = response.json()
    access_token = data.get('access_token')
    if not access_token:
        raise "请输入正确的API_KEY 和 SECRET_KEY"
    return access_token


修改后的症状:config.txt文件里的API_KEY和SECRET_KEY到不了字典里。
求大神给解决一下。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hqt 发表于 2024-1-20 23:54
我的建议是暴力replace
[Python] 纯文本查看 复制代码
APP_ID = lines[0].replace("APP_ID:", "")

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
快乐的小驹 + 1 + 1 谢谢@Thanks!

查看全部评分

kof21411 发表于 2024-1-20 17:59
APP_ID = lines[0].strip('APP_ID:')[1]  # strip()用于移除字符串首尾的空白字符
API_KEY = lines[1].strip('API_KEY:')[1]
SECRET_KEY = lines[2].strip('SECRET_KEY:')[1]
 楼主| 快乐的小驹 发表于 2024-1-20 18:02
kof21411 发表于 2024-1-20 17:59
APP_ID = lines[0].strip('APP_ID:')[1]  # strip()用于移除字符串首尾的空白字符
API_KEY = lines[1].str ...

raise "请输入正确的API_KEY 和 SECRET_KEY"
TypeError: exceptions must derive from BaseException
~零度 发表于 2024-1-20 18:19
APP_ID = lines[0].strip().strip('APP_ID:')  # strip()用于移除字符串首尾的空白字符
API_KEY = lines[1].strip().strip('API_KEY:')
SECRET_KEY = lines[2].strip().strip('SECRET_KEY:')
 楼主| 快乐的小驹 发表于 2024-1-20 18:30
~零度 发表于 2024-1-20 18:19
APP_ID = lines[0].strip().strip('APP_ID:')  # strip()用于移除字符串首尾的空白字符
API_KEY = lines[1 ...

也不行~还是没有值~
wangtietou 发表于 2024-1-20 18:38
检测config.txt的编码格式,确定是UTF-8无BOM
with open('config.txt', 'r') as f:
    lines = f.readlines()

APP_ID = lines[0].strip('APP_ID:').strip()  # strip()用于移除字符串首尾的空白字符
API_KEY = lines[1].strip().strip('API_KEY:')
SECRET_KEY = lines[2].strip().strip('SECRET_KEY:')

print(APP_ID)
print(API_KEY)
print(SECRET_KEY)

config.txt
APP_ID:9999
API_KEY:9999
SECRET_KEY:99999
 楼主| 快乐的小驹 发表于 2024-1-20 18:40
wangtietou 发表于 2024-1-20 18:38
检测config.txt的编码格式,确定是UTF-8无BOM
with open('config.txt', 'r') as f:
    lines = f.readli ...

print(APP_ID)
print(API_KEY)
print(SECRET_KEY)
是正常的~
wangtietou 发表于 2024-1-20 18:47
既然是用python,就用百度AI的SDK好了
https://github.com/Baidu-AIP/python-sdk
 楼主| 快乐的小驹 发表于 2024-1-20 18:53
wangtietou 发表于 2024-1-20 18:47
既然是用python,就用百度AI的SDK好了
https://github.com/Baidu-AIP/python-sdk

代码都写完了~就卡这一步了~
wangtietou 发表于 2024-1-20 19:02
[Python] 纯文本查看 复制代码
"""
    获取token
"""
def fetch_token():
    params = {'grant_type': 'client_credentials',
              'client_id': API_KEY,
              'client_secret': SECRET_KEY}
    post_data = urlencode(params)
    if (IS_PY3):
        post_data = post_data.encode('utf-8')
    req = Request(TOKEN_URL, post_data)
    try:
        f = urlopen(req, timeout=5)
        result_str = f.read()
    except URLError as err:
        print('token http response http code : ' + str(err.code))
        result_str = err.read()
    if (IS_PY3):
        result_str = result_str.decode()


    result = json.loads(result_str)

    if ('access_token' in result.keys() and 'scope' in result.keys()):
        if not 'audio_tts_post' in result['scope'].split(' '):
            print ('please ensure has check the tts ability')
            exit()
        return result['access_token']
    else:
        print ('please overwrite the correct API_KEY and SECRET_KEY')
        exit()


"""  TOKEN end """
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表