我可以帮助您翻译以下内容,这是关于编程的:
例子
预期的字典应该长这样:
基本上是一个字典嵌套字典
以下是我的代码:
我能够按预期获取第一个IP及其属性,但是来自第二个IP的第二组值正在覆盖第一个IP的值。
"
我有一个输入文件如下,我可以从中构建我的字典
一般格式
<IP_1>
KEY_1=VALUE_1
KEY_2=VALUE_2
<IP_2>
KEY_1=VALUE_1
KEY_2=VALUE_2
例子
192.168.1.1
USER_NAME=admin
PASSWORD=admin123
192.168.1.2
USER_NAME=user
PASSWORD=user123
预期的字典应该长这样:
>>print dictionary_of_ip
{'192.168.1.1':{'USER_NAME'='admin','PASSWORD'='admin123'},
'192.168.1.2':{'USER_NAME'='user','PASSWORD'='user123'}}
基本上是一个字典嵌套字典
以下是我的代码:
def generate_key_value_pair(filePath, sep='='):
dict_of_ip = {}
slave_properties = {}
with open(filePath, "rt") as f:
for line in f:
stripped_line = line.strip()
if stripped_line and stripped_line[0].isdigit():
#print 'Found Ip'
ip = stripped_line
dict_of_ip[ip] = ''
elif stripped_line and stripped_line[0].isupper():
#print "Found attributes")
key_value = stripped_line.split(sep)
key = key_value[0].strip()
value = key_value[1].strip()
slave_properties[key] = value
dict_of_ip[ip] = slave_properties
return dict_of_ip
我能够按预期获取第一个IP及其属性,但是来自第二个IP的第二组值正在覆盖第一个IP的值。
>>print dict_of_ip
{'192.168.1.1': {'USER_NAME': 'user', 'PASSWORD': 'user123'},
'192.168.1.2': {'USER_NAME': 'user', 'PASSWORD': 'user123'}}
"
dict_of_ip[ip] = slave_properties
导致了覆盖。我该如何防止 '192.168.1.2'
键的值覆盖第一个值?
dict_of_ip[ip] = slave_properties
应该可以解决问题... - Jean-François Fabreslave_properties
在其生命周期内引用了多少个不同的字典? - jwodder