IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Erreur sur le changement d'un champ


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Janvier 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Géomaticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2021
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Erreur sur le changement d'un champ
    Bonjour,
    je vous contacte car j'ai un petit soucis sur un script python pour lequel je n'arrive pas à trouver où est soucis.
    je m'explique, j'utilise un script python pour corriger des cellules dans un système d'information géographique (Arcgis pro) où j'ai constaté que certain champs ne correspondaient pas à ce qu'il devrait être.
    j'ai donc écrit ce script pour corriger ces erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    # coding: utf-8
     
    import arcpy
     
    arcpy.env.overwriteOutput = True
    # Recherche de la gdb pour correction
    ma_table = r"C:\representation_parcelaire\cadpmm_vierge.gdb\proprio"
    # rappatriment des champs utilises dans la fonction
    expression = "ma_fonction(param_ccogrm=!ccogrm!, param_ddenom=!ddenom!)"
    print("environnement charge")
    # correction du champ ccogrm
    code_block = """
    def ma_fonction(param_ccogrm, param_ddenom):
            if (param_ccogrm == str(1)) and (param_ddenom == str("COPROPRIETAIRES DU LOTISSEMENT LE COTEAU")):
                return str(7)
            else:
                return None
    """
    print("code block charge")
    # return None
    arcpy.CalculateField_management(
        in_table= ma_table,
        field="ccogrm",
        expression=expression,
        expression_type="PYTHON3",
        code_block=code_block,
        field_type="TEXT"
    )
    print("CalculateField ok")


    or au lieu de ne corriger que les cellules fausse le script me change la totalité de ma colonne. j'essaye de trouver où est le soucis mais là je pense avoir besoin d'un peu d'aide pour m'éclairer.
    Auriez vous une idée?
    Bonne journée

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Géomaticien
    Inscrit en
    Janvier 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Géomaticien
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2021
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    pour info,
    j'ai au final utilisé une autre fonctionnalité du logiciel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # coding: utf-8
     
    ##  utiliser le curseur de mise à jour
    import arcpy
    print("import ok")
    arcpy.env.overwriteOutput = True
    print("Ecriture forcee")
    #data = chemin acces vers la couche parcelle de la Gdb
    #si vous souhaitez utiliser le prog merci de l utiliser via arcgisPro
    #sinon changez l'adresse de data par data = r"c:/.../parcelle
    data = arcpy.GetParameterAsText(0)
    print("c est parti pour la joyeuserie")
    with arcpy.da.UpdateCursor(data, ["ccogrm", "ddenom"]) as cursor:
        for row in cursor:
            if (row[0]==str(x)) and (row[1]==str("blablabla")):
                row[0]=str(y)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur sur champ text pour un index Full-Text
    Par Steph82 dans le forum Outils
    Réponses: 5
    Dernier message: 06/01/2011, 14h08
  2. [VBA] Erreur sur changement de coleur
    Par darkphenx dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2006, 15h28
  3. Erreur lors de changement de longueur de champs
    Par Bouillon dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/10/2006, 09h17
  4. Erreur sur champ date
    Par climz dans le forum Access
    Réponses: 5
    Dernier message: 11/09/2006, 17h56
  5. Réponses: 13
    Dernier message: 14/02/2006, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo