侨中 2024-08-15 15:26 采纳率: 100%
浏览 1
已结题

Python调用接口成功出参为空



```python
import requests
# 假设agentConf和triggerConf是已经定义好的字典
api_key = agentConf.get('accessToken')
QueryDate = triggerConf.get('QueryDate')
# QueryDate = '2024-08-08'

# 修正URL
url = 'https://api2.hik-cloud.com/v1/customization/store/passenger_hour_flow'

# 构建HTTP头部
headers = {
    'Authorization': 'Bearer ' + api_key
}

# 发送GET请求
try:
    response = requests.get(url=url, headers=headers, params={'datetime': QueryDate})
    # 检查响应状态码
    if response.status_code == 200:
        print('请求成功,响应内容:', response.json())  # 假设响应内容是JSON格式
        body = response.json()
        data = [{
            'dateTime': item.get('dateTime'),
            'storeId': item.get('storeId'),
            'storeName': item.get('storeName'),
            'passengerInCount': item.get('passengerInCount'),
            'passengerPassCount': item.get('passengerPassCount'),
            'passengerOutCount': item.get('passengerOutCount'),
        } for item in body.get('data', [])]
 
        count = len(data)
        return {
            "data": data
        }
    else:
        print('请求失败,状态码:', response.status_code)
except requests.RequestException as e:
    print('请求过程中发生错误:', e)

接口状态返回200,但是返回参数错误 "stdout": "请求成功,响应内容: {'code': 510001, 'message': '参数错误'}\n",
求解答

  • 写回答

2条回答 默认 最新

  • GISer Liu 2024-08-15 15:27
    关注

    该回答引用自GPT-deepseek, 由博主 GISer Liu 编写:

    问题分析

    用户在使用Python调用接口时,虽然HTTP请求返回的状态码是200,但响应内容中包含错误信息{'code': 510001, 'message': '参数错误'}。这表明虽然请求成功,但请求参数可能存在问题。

    解决方案

    1. 检查请求参数:确保QueryDate的格式和内容正确。
    2. 检查API文档:确认API接口所需的参数格式和类型。
    3. 调试输出:在发送请求前打印出请求的URL和参数,以便于调试。

    详细步骤

    1. 检查QueryDate参数

      • 确保QueryDate的格式正确,例如YYYY-MM-DD
      • 确保QueryDate不为空。
    2. 打印调试信息

      • 在发送请求前打印出完整的URL和参数,以便于检查。
    3. 修改代码

      • 在发送请求前添加调试输出。
      • 确保QueryDate的格式正确。

    修改后的代码

    import requests
    
    # 假设agentConf和triggerConf是已经定义好的字典
    api_key = agentConf.get('accessToken')
    QueryDate = triggerConf.get('QueryDate')
    # QueryDate = '2024-08-08'
    
    # 修正URL
    url = 'https://api2.hik-cloud.com/v1/customization/store/passenger_hour_flow'
    
    # 构建HTTP头部
    headers = {
        'Authorization': 'Bearer ' + api_key
    }
    
    # 确保QueryDate不为空且格式正确
    if not QueryDate or not isinstance(QueryDate, str):
        print('QueryDate参数错误或为空')
        return
    
    # 构建请求参数
    params = {'datetime': QueryDate}
    
    # 打印调试信息
    print('请求URL:', url)
    print('请求参数:', params)
    
    # 发送GET请求
    try:
        response = requests.get(url=url, headers=headers, params=params)
        # 检查响应状态码
        if response.status_code == 200:
            print('请求成功,响应内容:', response.json())  # 假设响应内容是JSON格式
            body = response.json()
            if body.get('code') == 510001:
                print('参数错误,请检查QueryDate格式和内容')
                return
            data = [{
                'dateTime': item.get('dateTime'),
                'storeId': item.get('storeId'),
                'storeName': item.get('storeName'),
                'passengerInCount': item.get('passengerInCount'),
                'passengerPassCount': item.get('passengerPassCount'),
                'passengerOutCount': item.get('passengerOutCount'),
            } for item in body.get('data', [])]
     
            count = len(data)
            return {
                "data": data
            }
        else:
            print('请求失败,状态码:', response.status_code)
    except requests.RequestException as e:
        print('请求过程中发生错误:', e)
    

    解释

    1. 参数检查

      • 在发送请求前,检查QueryDate是否为空或格式不正确。
    2. 调试输出

      • 打印出请求的URL和参数,以便于调试和检查。
    3. 错误处理

      • 如果响应内容中包含code为510001的错误信息,提示用户检查QueryDate的格式和内容。

    通过以上步骤,可以确保请求参数的正确性,并帮助用户定位和解决参数错误的问题。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 创建了问题 8月15日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?