如何用Python按顺序提取Excel中的功能列表数据?
问题:按顺序提取Excel中的功能列表
我正在使用Python按顺序提取Excel中的功能列表,期望得到如下格式的纯文本结果:
Login Submit forgot password Delete (Submitted) Next>confirm save cancel upload delete ...
但处理Excel索引时逻辑出错,现有代码如下:
import pandas as pd df = pd.read_excel(fileNameMatrix,sheet_name="doTestCase") lastRowNumber = len(df) newDict = df.to_dict() newJson = df.to_json() document = docx.Document() # print(newDict) datalist = [] def sorting(): controller = True dataexist = "" j = 0 listindex = 0 while controller: try: if j == 0: menulist = [] func2 = newDict['Menu'] for i in range(len(func2)): if type(func2[i]) == str: menulist.append() listindex = listindex + 1 dataexist = "1" datalist.append(menulist) elif j > 0: func2 = newDict['Unnamed: '+str(j)] unnamelist = [] for i in range(len(func2)): if type(func2[i]) == str: dataexist = "1" unnamelist.append() datalist.append(unnamelist) # unnamelist = [] if dataexist == "1": j = j+1 except: return datalist controller = False sorting()
当前得到的结果为:
[['Login', 'delete ', 'userinfo'], ['Submit', '(submitted)', 'test'], ['forgot password', 'Next>confirm', 'Save'], ['save', 'delete'], ['cancel'], ['upload']]
逻辑修正建议
你的核心问题有两个:一是代码中append()方法未传入实际元素,二是错误地按列分组存储,没有按行优先的顺序收集所有功能项。结合Excel的结构(功能项按行从左到右、从上到下排列),修正思路如下:
- 按行遍历DataFrame:直接遍历每行,依次提取每行中的非空功能项,这是最贴合需求的遍历方式。
- 严格判断有效元素:排除NaN值和空字符串,只保留实际的功能文本。
- 扁平化收集结果:把所有有效元素存入一个列表,而非子列表嵌套的结构。
修正后的代码示例
import pandas as pd df = pd.read_excel(fileNameMatrix, sheet_name="doTestCase") result = [] # 遍历DataFrame的每一行 for _, row in df.iterrows(): # 遍历该行的每个单元格值 for value in row: # 筛选非空字符串(strip()处理首尾空格) if isinstance(value, str) and value.strip(): result.append(value.strip()) # 输出期望格式的结果 for item in result: print(item)
这段代码会直接输出每行一个功能项的纯文本,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者jame piENo
相关产品推荐
相关产品推荐

