Я хочу прочитать данные (ключ и значение) из Excel и проверить, присутствуют ли данные данные в словаре или нет. Пример для экселя:
key value
==== =====
v54 desktop
v7 nav
events event6
Когда я попробовал следующий код, он дает мне только текущую строку
ВЫХОД:
Key-value pair found in dictionary events : event6
ОЖИДАЕМЫЙ РЕЗУЛЬТАТ:
Key-value pair found in dictionary v54:desktop
Key-value pair found in dictionary v7:nav
Key-value pair found in dictionary events : event6
for index in range (len(df)):
key = df.loc[index,'key']
value = df.loc[index,'value']
if key in dict and dict[key] == value:
print("Key-value pair"" "+color.GREEN+"found"+color.END+ " ""in dictionary"" "+color.GREEN+ key +" : "+ value+color.END)
df.at[index, 'result'] = 'PASS'
else:
print("Key-value pair"" "+color.RED+ "not found"+color.END+" " "in dictionary"" "+color.RED+key +" : "+ value+color.END)
df.at[index, 'result'] = 'FAIL'
# Save the updated dataframe to the Excel file
df.to_excel('test.xlsx', index=False)






Ваш отступ неверен. должно быть так:
for index in range (len(df)):
key = df.loc[index,'key']
value = df.loc[index,'value']
if key in dict and dict[key] == value:
print("Key-value pair"" "+color.GREEN+"found"+color.END+ " ""in dictionary"" "+color.GREEN+ key +" : "+ value+color.END)
df.at[index, 'result'] = 'PASS'
else:
print("Key-value pair"" "+color.RED+ "not found"+color.END+" " "in dictionary"" "+color.RED+key +" : "+ value+color.END)
df.at[index, 'result'] = 'FAIL'
# Save the updated dataframe to the Excel file
df.to_excel('test.xlsx', index=False)
Возможно, ваш отступ неправильный? Я предполагаю, что ветвь if-else должна быть внутри цикла. Возможно, вы сможете использовать векторный/более идиоматический код pandas/numpy, выполнив что-то вроде
np.where(df["key"].map(dict) == df["value"], "PASS", "FAIL"), но вы пропустите промежуточную печать.