API数据获取
要获取API数据,首先我们需要导入requests标准库。这里我们直接使用import语句。
1 | import requests #导入requests标准库 |
定义API地址
我们使用一个变量API_url来定义一个API地址字串,也可以通过输入字串的方式来定义API地址。
1 | API_url = "https://api.exchangerate-api.com/v4/latest/USD" #硬编码API地址,适合长期不发生变化且执行频率高的API |
1 | API_url = input("Please input your API URL:") #提示用户输入API地址,适合地址变化灵活且执行频率相对较低的API |
获取API数据
在这里,我们通过requests库的一个命令来获取API的原始返回数据,通常是json格式数据。但是由于网络请求可能存在不稳定性,所以我们使用一个try:,并编写对应的except异常处理来防止网络异常或API失效时我们的程序崩溃。
1 | try: #使用try块确保出错时程序不崩溃 |
解析JSON
这里,我们需要先导入json库才能实现解析功能。先把import语句加在文件头部,导入json标准库。
1 | import json #导入json标准库 |
我们需要先审查原始json的结构才能进行进一步的数据分析代码编写。我们用json.dumps函数实现json美化,使其看上去有层次感,而不是全部挤在一起。这个函数一般用于开发阶段的json结构审查。
1 | print(f"美化数据预览:{json.dumps(response.text,indent=2,ensure_ascii=False)}") #json.dumps用于美化json数据输出格式,其有三个参数,第一个参数是原始json数据,第二个参数表示子级数据缩进,第三个参数控制编码,若要显示中文则填写False |
取值方法一:分层解析
我们使用多次json层级解析,一层层把json数据剥开,就像你想在一个洋葱(原始json数据)里面找出一个东西,你需要一层层的剥开洋葱,直到找到我们想要的东西(数据)并取值。
取值方法二:路径解析
我们直接使用json路径进行解析,就像你在一刀把洋葱砍成了两半,直接找到了洋葱里面你想要的东西。也可以理解为就像系统中找一个藏得很深的文件通常在命令行中只需要一条稍长一点的包含它所有父级文件夹名的路径一样。