Tutoriel

Comment utiliser la table OCR pour générer un fichier CSV avec Python

Comment utiliser la table OCR pour générer un fichier CSV avec Python
TABLE DES MATIÈRES

Extrayez rapidement et facilement des tableaux de documents et transformez-les au format CSV en quelques étapes simples !

Pourquoi convertir au format CSV ?

Le format CSV est un format largement accepté pour les données tabulaires, ce qui le rend idéal pour la manipulation, l'analyse et l'intégration des données avec les systèmes existants.

Il s'agit d'un format simple, lisible par l'homme et largement pris en charge pour les données tabulaires. C'est le choix idéal en matière de manipulation, d'analyse et d'intégration de données, en particulier pour les entreprises qui s'appuient sur des feuilles de calcul, des bases de données et des entrepôts de données pour prendre des décisions.

C'est précisément pourquoi nous proposons une solution basée sur Python pour convertir les réponses JSON de l'API de table OCR Eden AI au format CSV. En suivant ces étapes simples, vous acquerrez des compétences pratiques pour rationaliser le traitement et l'intégration des données, afin de tirer le meilleur parti de votre contenu numérisé.

Comment convertir un tableau en CSV

1. Obtenir une réponse à partir de l'API OCR Table

REMARQUE : Pour ce tutoriel, nous allons nous concentrer sur des tableaux simples facilement lisibles au format .csv. Pour les tableaux comportant de nombreuses rangées et colonnes, c'est un tout autre défi de les représenter dans un format simple.

Tout d'abord, nous devons analyser notre document au format JSON grâce à l'API Eden AI.

L'API est asynchrone, ce qui signifie que nous pouvons effectuer plusieurs requêtes en même temps sans attendre l'exécution de la demande précédente. Ceci est utile lorsque vous devez analyser un document couvrant plusieurs pages, ce qui prendrait beaucoup de temps à traiter.

Cependant, pour les besoins de cet exemple, nous enverrons simplement un tableau très simple qui peut être trouvé ici.

Voici un extrait de code pour vous montrer comment lancer la tâche :


import requests

headers = {"Authorization": "Bearer 🔑 Your_API_Key"}
url="https://api.edenai.run/v2/ocr/ocr_tables_async"

file_url = "https://developer.mozilla.org/en-US/docs/Learn/HTML/Tables/Basics/numbers-table.png"
provider = "amazon"

payload={
    "providers": provider,
    "file_url": file_url,
    "language":"en",
}

response = requests.post(url, json=payload, headers=headers)
result = response.json()

job_id = result['public_id']

L'API renvoie un identifiant_public que nous pouvons maintenant utiliser pour obtenir le résultat du travail. Comme nous ne savons pas quand elle se terminera, nous interrogerons la tâche et vérifierons son statut toutes les 5 secondes.


import time

def poll_ocr_table_job(job_id: str, max_poll_count = 10, poll_interval_sec = 5) -> dict:
    """
    Poll asynchronous job every `poll_interval_sec` seconds
    Raises Exception if job still not finished after `max_poll_count`
    """
    for i in range(max_poll_count):
        time.sleep(poll_interval_sec)
        response = requests.get(f"{url}/{job_id}", headers=headers)
        data = response.json()
        if data['status'] == 'finished':
            return data
    raise Exception("Call took too long.")


poll_response = poll_ocr_table_job(job_id)
# we know there is only one page and one table
# in reality you can iterate over pages and create one cv file per table found
json_table = poll_response['results'][provider]['pages'][0]['tables'][0]

2. Utiliser la bibliothèque Python CSV pour générer du CSV

Maintenant que nous avons le tableau, nous devons le formater en plusieurs listes de chaînes, chaque liste représentant une ligne.

Exemple :


[ ['header1', 'header2'], ['data1', 'data2']]

Voici comment procéder :


csv_table = []
for row in json_table['rows']:
    csv_row = []

    for cell in row['cells']:
        csv_row.append(cell['text'])

    csv_table.append(csv_row)

Enfin, il suffit de créer un fichier csv et d'y écrire les données :


import csv
with open("table.csv", 'w') as csvfile:
    tablewriter = csv.writer(csvfile)
    tablewriter.writerows(csv_table)

Voici le fichier CSV obtenu :

Chris, 38 ans

Dennis, 45 ans

Sarah, 29 ans

Karen, 47 ans

Conclusion

C'est ici ! Nous avons analysé avec succès un document tabulaire et l'avons transformé en fichier CSV. C'est en fait très facile à faire avec Python, et cela ne devrait pas poser de problème de l'implémenter dans d'autres langages.

Commencez votre aventure avec l’IA dès aujourd’hui

  • Accédez à plus de 100 API d’IA sur une seule plateforme.
  • Comparez et déployez des modèles d’IA en toute simplicité.
  • Paiement à l’usage, sans frais initiaux.
Commencez à créer GRATUITEMENT

Articles connexes

Essayez Eden AI gratuitement.

Vous pouvez commencer à créer dès maintenant. Si vous avez des questions, n'hésitez pas à discuter avec nous !

CommencezContactez le service commercial
X

Commencez votre parcours IA dès aujourd'hui!

Inscrivez-vous dès maintenant avec des crédits gratuits pour explorer plus de 100 API d'IA.
Obtenir mes crédits maintenant