Condition non respectée

Résolu/Fermé
The_nono Messages postés 5 Date d'inscription mardi 31 mai 2022 Statut Membre Dernière intervention 6 juin 2022 - Modifié le 6 juin 2022 à 12:19
The_nono Messages postés 5 Date d'inscription mardi 31 mai 2022 Statut Membre Dernière intervention 6 juin 2022 - 6 juin 2022 à 22:00
Bonjour à tous,

Je code actuellement un script pour récupérer les données d'un fichier excel, les ranger dans un dictionnaire, les retraiter et l'enregistrer dans un fichier SQL. Cependant, sur certaines lignes une condition n'est pas respecté et je ne comprends pas pourquoi :

import openpyxl
from Class import Writing
import datetime



def import_excel_writings(self):
    workbook_path = "Comptes.xlsx"
    workbook_comptes3 = openpyxl.load_workbook(str(workbook_path))
    worksheet_list = {
        "worksheet_Commun" : workbook_comptes3["Livre Commun"],
        "worksheet_Juju" : workbook_comptes3["Livre Juju"],
        "worksheet_Nono" : workbook_comptes3["Livre Nono"]
    }

    for account in worksheet_list.keys() :
        for row in range(2,worksheet_list[account].max_row + 1) :
            

            data = {
            "Date" : str(worksheet_list[account].cell(row,7).value).replace(' 00:00:00',""),
            "Description" : worksheet_list[account].cell(row,8).value,
            "Account" : account.replace("worksheet_",""),
            "Share" : worksheet_list[account].cell(row,9).value,
            "Kind" : worksheet_list[account].cell(row,10).value,
            "Category" : worksheet_list[account].cell(row,11).value,
            "Amount" : worksheet_list[account].cell(row,12).value,
            "Reconciliation" : worksheet_list[account].cell(row,13).value
            }

            a = []
            a.append(data["Share"])
            a.append(data["Kind"])
            print(a)


            #Define share and kind
            if data["Kind"] == "Revenu" and data["Share"] == "Oui" :
                data["Kind"] = "Revenu"
                data["Share"] = "Partage"

            elif data["Kind"] == "Revenu" and data["Share"] == "Non" :
                data["Kind"] = "Revenu"
                data["Share"] = "Classique"

            elif data["Kind"] == "Revenu" and data["Account"] == "Commun" :
                data["Kind"] = "Revenu"
                data["Share"] = "Classique"
            
            elif (data["Kind"] == "DépenseJ" or data["Kind"] == "DépenseN") and data["Share"] == "Oui" :
                data["Kind"] = "Dépense"
                data["Share"] = "Partage"

            elif (data["Kind"] == "DépenseJ" or data["Kind"] == "DépenseN") and data["Share"] == "Non" :
                data["Kind"] = "Dépense"
                data["Share"] = "Classique"

            elif data["Kind"] == "DépenseC" :
                data["Kind"] = "Dépense"
                data["Share"] = "Classique"

            elif data["Kind"] == "Tranfert" and data["Amount"] >0 :
                data["Kind"] = "Dépense"
                data["Share"] = "Transfert"

            elif data["Kind"] == "Tranfert" and data["Amount"] <0 :
                data["Kind"] = "Revenu"
                data["Share"] = "Transfert"

            elif data["Kind"] == "Entrée_Compte_Sec" or data["Kind"] == "Sortie_Compte_Sec" or data["Description"] == None :
                data["Kind"] = "NC"

            else :
                data["Kind"] = "Erreur"
                data["Share"] = "Erreur"


            if data["Kind"] != "NC" :
                    print(data)

                    line = Writing(data["Date"],"Commun",data["Share"],data["Kind"],data["Category"],data["Description"],data["Amount"],data["Reconciliation"])                
                    line.save_in_memory()



    
import_excel_writings(1)
Writing.DB_SQL.close()


En arrivant à la ligne :

{'Date': '2020-10-09', 'Description': 'dhd', 'Account': 'Juju', 'Share': 'Non', 'Kind': 'Transfert', 'Category': 'Loisir', 'Amount': 20, 'Reconciliation': 'X'}

Cette ligne est classée dans "Erreur". Je ne comprends pas pourquoi car avec les conditions elle aurait du être classée en "Dépense" & "Transfert". En vérifiant sur des conditions a part je vois qu'elles sont bien reconnu, alors pourquoi la non ?

Je tourne en rond et je ne trouve pas, j'ai rien trouvé sur google non plus.

Merci d'avance pour votre aide.

2 réponses

yg_be Messages postés 22770 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 mai 2024 1 481
6 juin 2022 à 13:48
bonjour,
relis très attentivement la ligne 66 de ton code.
0
The_nono Messages postés 5 Date d'inscription mardi 31 mai 2022 Statut Membre Dernière intervention 6 juin 2022
6 juin 2022 à 20:19
Bonjour,

J'ai beau la relire pour la 100eme fois de la journée, je ne parviens pas a détecter le problème. Si c'est le sens des < et > qui te dérange, dans le cas présent ils sont dans le bon sens.

De plus, dans le problème que je rencontre c'est la ligne 62 qui devrait être validé avec les conditions.
0
yg_be Messages postés 22770 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 mai 2024 1 481
6 juin 2022 à 21:52
Tu as la même erreur en ligne 62:
Tranfert
.
1
The_nono Messages postés 5 Date d'inscription mardi 31 mai 2022 Statut Membre Dernière intervention 6 juin 2022 > yg_be Messages postés 22770 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 8 mai 2024
6 juin 2022 à 22:00
Ah oui effectivement, j'ai tellement passé la tête dedans que je ne voyais pas la faute.
Merci à toi, Bonne soirée
0