当前位置: 首页 > 知识库问答 >
问题:

从JSON Python获取数据?[重复]

羊舌青青
2023-03-14

我正在努力在Python中做一个实时货币转换器。我已经成功地将URL所需的所有数据提取到Python中。但是,我现在尝试在URL中调用特定字符串。这是我当前的代码:

import urllib.request
import json

##Define JSON API Url
with urllib.request.urlopen("http://openexchangerates.org/api/latest.json?app_id=XXX") as url:
    response = url.read()

##Print Fetched data
print (response)

如您所见,我已经打印了它获取的所有数据,但它现在正在从中打印特定的字符串。

我的问题是,如何从URL解析特定字符串?我听说过json.load,这是我应该使用的东西吗?

共有1个答案

阴禄
2023-03-14

您需要将数据加载为 JSON;json模块可以为您执行此操作,但您需要先将数据解码为文本。

import urllib.request
import json

with urllib.request.urlopen("http://openexchangerates.org/api/latest.json?app_id=XXX") as url:
    response = url.read()

charset = url.info(). get_content_charset('utf-8')  # UTF-8 is the JSON default
data = json.loads(response.decode(charset))

从那时起,数据就是一个Python对象。

根据文档判断,您应该能够访问以下费率:

print('Euro rate', data['rates']['EUR'])

例如

 类似资料:
  • 这是我打印日志时的JSON结果。我无法从这个结果中获得数据。请建议如何从这个结果中获得数据。错误显示of类型org.json.jsonArray不能转换为JSONObject,我知道已经有很多文章与此相关,但我不明白如何获取数据。

  • 我有点麻烦。 我需要创建一个网站,使用以下API显示三个随机的Chuck Norris笑话:http://www.icndb.com/api/。我必须使用以下URL获取笑话:http://api.icndb.com/jokes/random/3。 我的HTML如下: 我的Javascript如下: HTML显示正确,但在控制台中,即使我调用一个笑话,所有三个笑话也会出现。请看下面的截图: 事先谢谢

  • 我有一个内部类,它在我的主类中扩展了异步任务 我在内部类中获得了分配给我的字符串变量“变量”的正确值,但我无法访问我的主类中的值。

  • 问题内容: 日志,为什么? 问题答案: 为了详细说明@Raynos所说的内容,您定义的函数是一个异步回调。它不会立即执行,而是在文件加载完成后执行。当您调用readFile时,将立即返回控件并执行下一行代码。因此,当您调用console.log时,尚未调用您的回调,并且尚未设置此内容。欢迎使用异步编程。 示例方法 或者更好的是,如Raynos的示例所示,将您的调用包装在一个函数中并传递您自己的回调