首页 > 解决方案 > 如何使该网站将我的数组识别为有效 url 查询的一部分?

问题描述

编辑:以类似的方式,当我现在尝试使用发布请求登录他们的帐户时,返回的不是他们在他们的网站上建议的错误,而是实际上是“JSON 异常”。有没有办法调试这个,或者错误代码 500 完全无法处理?

我很清楚以前有人问过这个问题。可悲的是,在尝试提出的答案时,没有一个有效。我有一个非常简单的带有 urllib 的 Python 项目,而且我以前从未用 Python 进行过 Web 编程,我什至也不是 Python 的普通用户。我的朋友需要访问该站点的内容,但他们的用户友好型前端已关闭,我了解到他们有一个公共 API 来访问他们的内容。不知道自己在做什么,但很高兴尝试提供帮助并对挑战感兴趣,我已经非常缓慢地出发了。

请注意,我必须只使用标准 Python 库,以便任何完成的项目都可以轻松地通过电子邮件发送到他们的计算机并正常工作。

以下工作完全没有“originalLanguage”查询,但是在使用它时,API 已将其记录为数组值,无论我是用逗号分隔的东西,还是写“originalLanguage[0]”或“originalLanguage0”或任何东西我在网上看到的,这会从服务器创建错误消息:“预期数组值,但检测到字符串”或类似的内容。

我有什么办法让这个工作吗?因为它显然可以工作,否则 API 不会记录它。非常感谢。

如果它有帮助,当使用“[]”或“<>”或“{}”或任何我能想到的分隔符时,我的 IDE 没有将它识别为 URL 的一部分。

import urllib.request as request
import urllib.parse as parse


def make_query(url, params):
    url += "?"

    for i in range(len(params)):
        url += list(params)[i]
        url += '='
        url += list(params.values())[i]

        if i < len(params) - 1:
            url += '&'

    return url


base = "https://api.mangadex.org/manga"
params = {
    "limit": "50",
    "originalLanguage": "en"
}

url = make_query(base, params)

req = request.Request(url)
response = request.urlopen(req)

标签: pythonurllib

解决方案


推荐阅读