You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python查询DOL VETS4212数据库遇阻,求提取指定企业数据方案

解决DOL VETS4212数据库API查询失败的问题

我来帮你排查下这个API查询的问题,先从你给出的代码片段和API的规则入手分析:

首先,你的代码里有几个明显的问题导致查询失败:

  • 身份凭据没有正确传递:你定义了APIKey和token,但没把它们放到请求里,DOL的API必须携带有效的认证信息才能返回数据;
  • 请求参数不完整:你注释了企业名称参数,但没把它和格式参数一起传给API;
  • URL可能存在冗余:官方API的format参数可以直接作为查询参数传递,不需要拼在URL路径里。

下面是修正后的完整代码,用requests库实现(记得先执行pip install requests安装依赖):

import requests

# 替换成你的真实API密钥
API_KEY = '40_Digit_APIkey'
# 要查询的目标企业名称
TARGET_COMPANY = 'Baker McKenzie'

# 官方正确的API端点
api_url = 'https://data.dol.gov/get/vets4212dataset'

# 构造请求参数:包含认证密钥、查询字段和返回格式
request_params = {
    'api_key': API_KEY,
    'CoName': TARGET_COMPANY,
    'format': 'json'
}

try:
    # 发送GET请求
    response = requests.get(api_url, params=request_params)
    # 主动抛出HTTP错误(比如401、403、404这类状态码)
    response.raise_for_status()
    
    # 解析返回的JSON数据
    company_data = response.json()
    
    if company_data:
        print(f"成功获取匹配的企业数据:")
        for entry in company_data:
            print(f"企业名称: {entry.get('CoName')}, 负责人: {entry.get('HlName')}")
    else:
        print("未找到匹配的企业数据,试试调整名称拼写或使用模糊查询")
        
except requests.exceptions.HTTPError as http_err:
    print(f"HTTP请求错误:{http_err}")
    # 打印API返回的错误详情,方便精准排查
    print(f"错误详情:{response.text}")
except requests.exceptions.ConnectionError as conn_err:
    print(f"网络连接错误:{conn_err}")
except Exception as err:
    print(f"其他未知错误:{err}")

另外,再给你几个实用的排查方向:

  1. 确认API密钥有效性:如果返回401/403错误,去DOL开发者平台检查你的API密钥是否过期、是否有访问VETS4212数据集的权限;
  2. 模糊查询支持:如果精确匹配不到数据,可以试试API支持的模糊过滤,比如用CoName__contains='Baker'作为参数(DOL的API基于DRF框架,支持这类过滤运算符);
  3. OAuth Token的使用:如果你想用OAuth token而不是API密钥,需要把token放在请求头里,比如headers={'Authorization': f'Bearer {your_token}'},同时去掉api_key参数;
  4. 字段正确性:确认你用的CoName是正确的企业名字段,HlName是企业负责人姓名,别搞混两个字段的用途。

内容的提问来源于stack exchange,提问作者Jimmy'z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:12:07