目前我从xml文件中获取信息。 如果xml标记包含多个子标记,则它将作为该标记内的列表返回,但是如果该xml标记只有1个子标记,则它将不作为列表返回,而仅作为常规字符串返回。
我的问题是:有没有更好的方法来迭代这个标签?如果它是一个列表,遍历列表长度的次数,但如果它是一个字符串只迭代一次?
这是我目前的做法:
#check if tag is a list, if not then make a list with empty slot at end
if not isinstance(accents['ac'], list):
accents['ac'] = list((accents['ac'], {}))
#loop through guaranteed list
for ac in accents['ac']: #this line throws error if not list object!
#if the empty slot added is encountered at end, break out of loop
if bool(ac) == False:
break
有关如何使这种更干净或更专业的任何想法都表示赞赏。
答案 0 :(得分:1)
假设问题是由accents['ac']
是字符串列表或单个字符串引起的,那么简单的处理可能是:
#check if tag is a list, if not then make a list with empty slot at end
if not isinstance(accents['ac'], list):
accents['ac'] = [ accents['ac'] ]
#loop through guaranteed list
for ac in accents['ac']: #this line throws error if not list object!
...
答案 1 :(得分:0)
为了便于阅读,最好做
if isinstance(accents['ac'], str):
pass #insert what you want to happen here when it is a string
else:
for(ac in accents['ac']):
pass #insert what you want to happen here when it is a list
答案 2 :(得分:0)
假设我想将它们添加到列表中,我会首先检查它是否是嵌套标记然后添加它们。
tag_list=[]
if(len(accents['ac'])>1):
for tag in accents['ac']:
tag_list.append(tag)
else:
tag_list.append(tag)