列表中迴圈新增字典出現覆蓋現象的問題

2021-07-09 04:52:58 字數 1851 閱讀 7323

這是要解析的xml

config="/etc"

index="1"

ip="172.16.1.239"

phone="15011262015"

realname="田振華"

username="tianzh"/>

config="/usr"

index="2"

ip="1.1.1.1"

phone="110"

realname="龔凡"

username="gongf"/>

config="/lib"

index="3"

ip="2.2.2.2"

phone="120"

realname="安吉旺"

username="anjw"/>

user>

這是之前的**

def

get_xml_data

(filename='config_new.xml'):

key_list = ["username","index","realname","config","ip","phone"]

doc = minidom.parse(filename)

root = doc.documentelement

user_nodes = root.getelementsbytagname('userinfo') #根據節點名獲取節點集合

usersinfo= #鍵值列表 使用者資訊集合 乙個字典表示一行user資訊

adict = {}

for node in user_nodes:

for key in key_list:

value = node.getattribute(key) #根據屬性名獲取屬性值

if value.strip():#如果屬性值不為空(不是"") 則加入到字典中

adict[key] = value;

print adict

print usersinfo

return usersinfo

本來是想將從xml中獲取出來的資訊做為鍵值做成字典放到列表中,結果返回的usersinfo變成了這樣:

[, ,

]解決此問題代

def

get_xml_data

(filename='config_new.xml'):

key_list = ["username","index","realname","config","ip","phone"]

doc = minidom.parse(filename)

root = doc.documentelement

user_nodes = root.getelementsbytagname('userinfo') #根據節點名獲取節點集合

usersinfo= #鍵值列表 使用者資訊集合 乙個字典表示一行user資訊

for node in user_nodes:

adict = {} #臨時字典初始化

for key in key_list:

value = node.getattribute(key) #根據屬性名獲取屬性值

if value.strip():#如果屬性值不為空(不是"") 則加入到字典中

adict[key] = value;

print adict

print usersinfo

return usersinfo

列印usersinfo也正常了

[, ,

]解決了!

關於向列表迴圈新增字典

例如 list 路人甲 路人乙 路人丙 new list dict for i in range 3 dict name list i dict print new list 結果 這是因為 字典 dict 在python裡是object,不屬於primitive type 即int float s...

python 迴圈列表中字典元素

1.目的 實現列表中字典kay value的遍歷 迴圈列表中字典元素 info list 第一種方式 index 0 while index print name s nage s nhight s info list index name info list index age info list...

給列表裡新增字典時被最後乙個覆蓋

item items 先宣告乙個字典和乙個列表,字典用來新增到列表裡面 item index 1 給字典賦值 items 新增到列表裡面復合預期 item index 2 現在修改字典 item 修改成功 將修改後的新字典新增到列表 items 按預期應該是 找一下原因 id item id ite...