Python中类似Java OptString方法处理KeyError的示例请求
解决方案:用Python字典的
get()方法实现类似OptString的功能 你提到的Java里OptString的功能,在Python中可以通过字典的**get()方法**直接实现,它允许你指定键不存在时返回的默认值,无需异常处理就能自动填充缺失值(比如pd.NA或np.nan)。
改进后的代码示例
首先补全你代码中缺失的requests导入,然后替换索引访问为get()方法:
import pandas as pd import requests # 补充缺失的导入 mass = [] fall = [] year = [] req = requests.get("https://data.nasa.gov/resource/y77d-th95.json") response = req.json() # 遍历每个条目,用get()方法安全获取值,缺失时返回pd.NA for item in response: mass.append(item.get('mass', pd.NA)) fall.append(item.get('fall', pd.NA)) year.append(item.get('year', pd.NA))
更简洁的列表推导式写法
如果想简化代码,可以用列表推导式直接生成三个列表:
import pandas as pd import requests req = requests.get("https://data.nasa.gov/resource/y77d-th95.json") response = req.json() mass = [item.get('mass', pd.NA) for item in response] fall = [item.get('fall', pd.NA) for item in response] year = [item.get('year', pd.NA) for item in response]
说明
dict.get(key, default)的作用:尝试获取字典中key对应的值,若key不存在则返回指定的default值(这里用pd.NA是pandas推荐的缺失值标记,也可以用np.nan,但需要提前导入numpy)。- 这种写法完全替代了异常处理的逻辑,代码更简洁易读,和Java的OptString用法逻辑一致。
内容的提问来源于stack exchange,提问作者arpit
相关产品推荐
相关产品推荐

