【问题标题】:How can I read the contents of an URL with Transcrypt? Where is urlopen() located?如何使用 Transcrypt 读取 URL 的内容? urlopen() 位于哪里?
【发布时间】:2020-11-05 19:58:42
【问题描述】:

在 Transcrypt 中,我尝试从 URL 读取 JSON 数据,所以我尝试:

import urllib.request    
data = urllib.request.urlopen(data_url)

但我收到错误“导入错误,找不到 [...] urllib.request”。所以urllib.request 似乎不支持;奇怪的是,虽然顶级 import urllib 可以工作,但是我无法使用 urlopen() 函数...

知道urlopen() 在 Transcrypt 中的位置吗?还是有其他方法可以检索 URL?

【问题讨论】:

    标签: python url urlopen transcrypt


    【解决方案1】:

    我不相信 Transcrypt 有可用的 Python urllib 库。您将需要使用相应的 JavaScript 库。我更喜欢 axios,但你也可以只使用内置的 XMLHttpRequest() 或 window.fetch()

    这是一个你可以使用 window.fetch() 的 Python 函数:

    def fetch(url, callback):
        def check_response(response):
            if response.status != 200:
                console.error('Fetch error - Status Code: ' + response.status)
                return None
            return response.json()
    
        prom = window.fetch(url)
        resp = prom.then(check_response)
        resp.then(callback)
        prom.catch(console.error)
    

    只需从您的 Python 代码中调用此 fetch 函数并传入 URL 和回调以在收到响应后使用它。

    【讨论】:

    • 谢谢@JohnS。是的,我想这就是要走的路。我刚用过jQuery。奇怪的是 import urllib 确实 not 给出错误,而 import urllib.requests does...
    • 这也有效。就我个人而言,我更喜欢尽可能地将代码保留在 Python 领域。它让 linter 和我的大脑更快乐。同样使用 jQuery,您需要使用 __pragma__('alias', 'S', '$') 转义 $
    猜你喜欢
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2011-06-01
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多