如何在Python中为YAML文件内所有国家添加continent字段?
如何用Python给YAML文件中的每个国家添加
continent: Europe字段 这事儿用Python的PyYAML库就能轻松搞定,我给你一步步拆解操作:
1. 先安装PyYAML依赖
如果你的环境还没装这个库,打开终端运行下面的命令:
pip install pyyaml
2. 编写处理代码
下面的代码会读取你的YAML文件,给每个国家添加continent字段,再把修改后的内容写回文件:
import yaml # 读取目标YAML文件(替换成你的文件实际路径) with open('your_countries.yaml', 'r') as input_file: country_dict = yaml.safe_load(input_file) # 遍历每个国家的信息字典,添加continent字段 for country_info in country_dict.values(): country_info['continent'] = 'Europe' # 将修改后的数据写入文件,保留原格式风格 with open('your_countries.yaml', 'w') as output_file: yaml.dump( country_dict, output_file, default_flow_style=False, # 保持和原文件一致的块级格式 sort_keys=False, # 不自动排序国家,保留原有的顺序 allow_unicode=True )
代码细节说明
yaml.safe_load():安全加载YAML内容,返回一个嵌套字典——外层键是国家名称,内层是包含population和capital的子字典。- 遍历
country_dict.values()就能直接拿到每个国家的信息字典,直接添加continent: 'Europe'就行,操作非常直观。 yaml.dump()的参数是关键:default_flow_style=False确保输出是和原文件一样的块式结构,不会变成紧凑的流式格式。sort_keys=False避免PyYAML自动按字母排序国家,保证克罗地亚(Croatia)在意大利(Italy)前面的原有顺序不变。
运行这段代码后,你的YAML文件就会完全变成你期望的样子啦!
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

