Guides pratiques

Préparer un import ou un export de données fiable

Un fichier qui s’ouvre n’est pas nécessairement exploitable. Un échange fiable conserve le sens des champs, distingue l’inconnu du zéro et permet de rapprocher les lignes sans transformer un libellé en identifiant fragile.

Voir la méthode

Échanger sans perdre le sens

Décrire le contrat de données

Écrivez un dictionnaire des champs avec sens, type, unité, caractère obligatoire et valeur absente. Précisez les identifiants stables et les relations entre lignes. Le code postal, un numéro de produit ou un code administratif peut nécessiter une représentation textuelle pour conserver son sens.

Indiquez l’encodage, le séparateur, le format des dates, les fuseaux et les règles de décimales. La documentation Python CSV montre que les dialectes doivent être décrits ; une extension de fichier ne suffit pas à imposer une convention identique chez tous les producteurs.

Constituer un lot qui met les limites à l’épreuve

Incluez un nom accentué, une ligne sans valeur facultative, un identifiant à zéro initial, une description avec retour à la ligne et une relation manquante. Ajoutez un doublon et un format volontairement invalide. Ce lot doit rester fictif et être reconnaissable comme jeu d’essai.

Décidez le comportement attendu : rejet d’une ligne, rejet du fichier ou import avec rapport d’anomalies. Évitez un résultat « réussi » qui masque la disparition silencieuse de champs. Un rapport de traitement doit indiquer les lignes acceptées, refusées et laissées à vérifier.

Prévoir droits et sécurité de l’échange

Déterminez qui peut exporter, importer et supprimer un lot. Ne placez pas un export confidentiel dans un dossier public par défaut. Lorsque le fichier sera ouvert dans un tableur, examinez les champs pouvant être interprétés comme formules avec une méthode adaptée au logiciel destinataire.

Séparez les données autorisées du contexte interne qui ne doit pas être transmis : commentaires privés, coordonnées non nécessaires ou clés techniques. Une copie de test doit être nettoyée ou synthétique. Documentez l’emplacement, la durée de conservation et la personne qui retire les exports temporaires.

Rapprocher les données après traitement

Comparez les identifiants, les relations, les totaux et un échantillon de valeurs avant et après l’opération. Si le service promet un aller-retour, exportez, réimportez dans un environnement d’essai et comparez le sens des données plutôt que seulement la taille des fichiers.

Conservez une sauvegarde et un compte rendu avant un import destructif. Distinguez mise à jour, ajout et suppression : l’absence d’une ligne dans un export partiel ne signifie pas automatiquement que cette ligne doit être supprimée. Faites valider ces règles avant de traiter toute la base.

Documentation primaire : Python — CSV File Reading and Writing.

Matrice de recette à adapter au projet

Ces contrôles proposés utilisent des cas fictifs. Décidez du comportement attendu avec l’équipe, notez le résultat et attribuez les écarts non résolus avant publication.

Cas de test, résultats attendus et preuves utiles
CasRésultat attenduPreuve à conserver
Accents, séparateurs et texte multiligneLes valeurs conservent leur sens après export puis import.Comparaison champ par champ d’un petit fichier témoin.
Zéro, vide, null et absenceLes quatre situations suivent des règles distinctes lorsque le contrat le demande.Dictionnaire de données et valeurs réellement reçues.
Identifiant répétéLa règle choisie distingue doublon, mise à jour et variante légitime.Journal des lignes acceptées ou refusées et justification.
Échec au milieu du fichierL’équipe sait ce qui a été appliqué et comment reprendre.État final, lignes concernées et procédure de reprise testée.

Questions fréquentes

Pourquoi conserver certains codes sous forme de texte ?

Parce qu’ils identifient une entité au lieu de représenter une quantité. Une conversion automatique peut perdre des zéros initiaux ou changer leur présentation. Définissez leur type dans le contrat et vérifiez un exemple limite.

Un total de lignes identique prouve-t-il que l’import est correct ?

Non. Le total peut rester identique malgré des champs perdus, des relations cassées ou un remplacement erroné. Comparez aussi identifiants, valeurs, unités et erreurs avec un lot représentatif.