我在我的项目中使用了Technic公司的API.我需要发出请求并获得响应,然后将其显示在Python控制台中.我写了代码,但它不起作用.我怎么才能把它修好?

import requests

def mouser_api_request(keyword):
    mouser_api_key = 'MY_API_KEY'
    version = 'v1'

    url = f'https://api.mouser.com/api/v{version}/search/keyword?apiKey={mouser_api_key}'

    headers = {'Content-Type': 'application/json'}
    params = {'keyword': keyword}

    response = requests.get(url, headers=headers, params=params)

    if response.status_code == 200:
      data = response.json()
      print(data)
    else:
      print('Mouser API request failed')

keyword_to_search = input('Input your keyword ')
mouser_api_request(keyword_to_search)

推荐答案

以下是修改后的示例(根据他们的接口文档:https://api.mouser.com/api/docs/ui/index):

import requests


# API doc here: https://api.mouser.com/api/docs/ui/index
def mouser_api_request(keyword):
    mouser_api_key = "MY_API_KEY"
    version = "1"  # <--- change here to "1" (or "1.0")

    url = f"https://api.mouser.com/api/v{version}/search/keyword"

    params = {"apiKey": mouser_api_key}

    # https://api.mouser.com/api/docs/ui/index#/SearchApi/SearchApi_SearchByKeyword
    payload = {
        "SearchByKeywordRequest": {
            "keyword": keyword,  # <--- your keyword
            "records": 0,  # <--- probably should be higher number
            "startingRecord": 0,
            # "searchOptions": "string",
            # "searchWithYourSignUpLanguage": "string",
        }
    }

    response = requests.post(url, params=params, json=payload)  # <--- use .post()

    if response.status_code == 200:
        data = response.json()
        print(data)
    else:
        print("Mouser API request failed")


keyword_to_search = input("Input your keyword ")
mouser_api_request(keyword_to_search)

Python相关问答推荐

为什么我的代码会进入无限循环?

如何将不同长度的新列添加到现有的框架中

Pandas滚动分钟,来自其他列的相应值

socket.gaierror:[Errno -2]名称或服务未知|Firebase x Raspberry Pi

Python主进程和分支进程如何共享gc信息?

基本链合同的地址是如何计算的?

如何在PIL、Python中对图像应用彩色面膜?

添加包含中具有任何值的其他列的计数的列

配置Sweetviz以分析对象类型列,而无需转换

如何从具有多个嵌入选项卡的网页中Web抓取td类元素

如何在具有重复数据的pandas中对groupby进行总和,同时保留其他列

韦尔福德方差与Numpy方差不同

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

Pandas计数符合某些条件的特定列的数量

如何保持服务器发送的事件连接活动?

python中的解释会在后台调用函数吗?

将scipy. sparse矩阵直接保存为常规txt文件

在Python中调用变量(特别是Tkinter)

Flash只从html表单中获取一个值

Gekko中基于时间的间隔约束