如何将recipes.txt内容转换为Python嵌套字典格式
解决方案:将食谱文件转换为嵌套字典格式
以下是实现需求的Python代码及详细说明:
完整代码
cook_book = {} # 读取文件并预处理行数据 with open('recipes.txt', 'r', encoding='utf-8') as f: # 过滤空行并去除每行首尾空白字符 lines = [line.strip() for line in f if line.strip()] index = 0 while index < len(lines): # 获取当前食谱的菜名 dish_name = lines[index] index += 1 # 获取食材数量并转为整数 ingredient_count = int(lines[index]) index += 1 # 解析对应数量的食材信息 ingredients = [] for _ in range(ingredient_count): name, qty, unit = lines[index].split(' | ') ingredients.append({ 'ingredient_name': name, 'quantity': int(qty), 'measure': unit }) index += 1 # 将当前食谱存入字典 cook_book[dish_name] = ingredients # 可选:打印结果验证格式 print(cook_book)
代码说明
- 文件读取与预处理:使用
with语句安全操作文件(自动处理文件关闭),通过列表推导式过滤空行并清理每行的首尾空白,避免空行干扰解析逻辑。 - 循环解析食谱块:
- 每次循环先读取菜名,然后索引后移一位;
- 读取下一行的食材数量,转为整数后索引继续后移;
- 根据食材数量循环读取对应行数的食材数据,用
split(' | ')分割出食材名、数量、单位,构造指定格式的字典并添加到食材列表; - 将菜名作为键、食材列表作为值,存入目标字典
cook_book。
- 数据类型转换:将食材数量转为整数,确保字典中
quantity字段为数值类型,完全匹配需求格式。
内容的提问来源于stack exchange,提问作者This_guy
相关产品推荐
相关产品推荐

