Python读取文件构造字典时name与subnet字段赋值问题求解
Python字典读取文件行赋值修复方案
原代码存在的核心问题
- 字典语法错误:Python字典的键和值之间必须用冒号
:分隔,原代码中混用了等号=赋值,会直接触发语法报错 - 文件行处理逻辑缺失:逐行读取的文件内容默认携带末尾换行符,且没有按空格拆分每行的两个独立字段,无法分别给name、subnet赋值
- 变量引用错误:
'+value_string+'是固定字面量字符串,不会读取value_string变量的实际内容 - 依赖缺失:使用
pprint方法前没有导入对应的模块
正确实现代码
from pprint import pprint # 提取固定不变的键值对,避免重复定义 fixed_config = {'id': 3, 'env': "PROD"} with open("file1.txt", "r", encoding="utf-8") as f: for line in f: # 清除每行首尾的换行、空格,跳过空行 stripped_line = line.strip() if not stripped_line: continue # 按任意空白字符拆分,自动适配单空格、多空格分隔的场景 name, subnet = stripped_line.split() # 合并固定配置和动态读取的字段 data = { **fixed_config, "name": name, "subnet": subnet } pprint(data)
特殊需求适配
如果要求name、subnet的取值本身要包含双引号字符(即值格式为"1.1.1.1"而非1.1.1.1),只需要调整赋值逻辑,给读取到的值外层拼接双引号即可:
data = { **fixed_config, "name": f'"{name}"', "subnet": f'"{subnet}"' }
内容的提问来源于stack exchange,提问作者Ankit
相关产品推荐
相关产品推荐

