Python提取JSON中population数值及json.loads解析报错解决方案
错误原因
- 目标接口返回的是纯JSON格式数据,你使用BeautifulSoup(HTML解析工具)处理属于多余操作,反而可能引入多余字符
- 你将接口返回的bytes类型直接转为str,会在字符串首尾生成
b'和'两个多余标识,导致JSON解析器无法识别合法结构 - 你在JSON解析后执行的
[:-1][2:]操作逻辑错误,接口返回的是匹配国家的数组结构,直接取下标为0的元素即可拿到目标国家数据
修正后可运行代码
import urllib.request import json country = input("Country: ") link = 'https://restcountries.com/v3.1/name/' + country # 读取接口返回的字节流并解码为正常字符串 response_content = urllib.request.urlopen(link).read().decode('utf-8') # 解析JSON后取第一个匹配的国家数据 country_info = json.loads(response_content)[0] population_number = country_info['population'] print(population_number) # 可自行运行验证类型为int print(type(population_number))
内容的提问来源于stack exchange,提问作者נתנאל פרץ
相关产品推荐
相关产品推荐

