如何编写Python代码从XML中获取2019年8月King and Queen地区的FIPS值
实现指定条件的FIPS值查询
以下是完善后的完整代码,包含针对2019年8月、King and Queen地区的FIPS值查询逻辑:
import requests from lxml import objectify # 替换为你的目标XML数据源URL xml_url = "你的XML地址" resp = requests.get(xml_url) xml_root = objectify.fromstring(resp.content) # 定义查询参数 target_year = 2019 target_month = 8 target_region = "King and Queen" matched_fips = None # 遍历XML节点(根据实际结构调整遍历路径) for record in xml_root.iter(): # 检查当前节点是否包含所需字段(需匹配实际XML节点名) if all(hasattr(record, field) for field in ['year', 'month', 'area', 'fips']): # 类型转换后匹配条件 if (int(record.year) == target_year and int(record.month) == target_month and record.area == target_region): matched_fips = record.fips break # 输出结果 if matched_fips: print(f"找到匹配的FIPS值: {matched_fips}") else: print("未找到符合条件的记录")
核心逻辑说明
- XML节点遍历:
xml_root.iter()会遍历所有子节点,如果你的XML有固定的数据节点(比如所有记录都在<data_record>下),可以改为xml_root.data_record.iter()来缩小遍历范围,提升效率 - 字段匹配:代码中的
year、month、area、fips是假设的节点名称,你需要对照实际XML的结构修改这些字段名(比如年份可能是<report_year>,则改为record.report_year) - 类型处理:XML节点的文本默认是字符串类型,所以需要将年份和月份转为整数后再与目标值比较,避免字符串匹配的误差
- 终止遍历:找到第一个匹配项后就
break退出循环,减少不必要的遍历
内容的提问来源于stack exchange,提问作者rowrowrow
相关产品推荐
相关产品推荐

