Remarque: Ceci est une note pour les débutants en Python.
J'ai converti xlsx en JSON en utilisant un plugin appelé ʻexcel2json` en Python.
ʻExcel2json` a des fonctionnalités limitées, il convertit simplement les données Excel en JSON. Étant donné que le document décrit uniquement comment convertir, il ne semble y avoir aucun paramètre particulier.
Comme vous pouvez le voir sur le site de référence, il y avait un moyen d'utiliser Pandas, mais cette fois je voulais que la méthode de conversion soit bonne, alors j'ai essayé d'utiliser ʻexcel2json`. Il semble que les entiers soient également convertis en nombres à virgule flottante. Veuillez également visiter les sites suivants.
référence:
import excel2json
xlsx_path = 'C:/Users/username/Documents/xlsx_files/hoge.xlsx'
excel2json.convert_from_file(xlsx_path)
# -->  C:/Users/username/Documents/xlsx_files/Sheet1.json est sorti
Le nom de la feuille Excel devient le nom du fichier de sortie tel quel. Je voulais être honnête avec la spécification du nom du fichier de sortie. Cette spécification ne peut être utilisée qu'à des fins limitées ...
Je voulais pouvoir exporter un fichier Excel à partir d'un logiciel d'analyse en ligne de mire appelé Tobii et analyser les données en ligne de mire avec mon propre programme. Je voulais donc convertir plusieurs fichiers Excel en sortie du logiciel en JSON en même temps. Pour le moment, j'ai également mis le code pour la conversion simultanée.
Lors de la conversion de plusieurs fichiers dans une boucle, il essaie toujours d'écraser le fichier JSON créé (même nom), il doit donc être renommé à chaque fois. S'il y a plusieurs feuilles, Sheet2.json apparaîtra, vous devez donc prendre des mesures.
Dans mon cas, il n'y avait qu'une seule feuille nommée «Data», ce qui est suffisant pour les spécifications.
import excel2json
import pathlib
import os
from halo import Halo
from shutil import move
spinner = Halo(spinner='dots')  #Tour et tour de l'écran de chargement
path = 'C:/Users/username/Documents/xlsx_files'    #chemin contenant les fichiers xlsx
xlsx_files = list(pathlib.Path(path).glob('*.xlsx'))  #Faire une liste de fichiers xlsx
for i in xlsx_files:
  xlsx_path = '%s/%s' % (path, i.name)  #chemin et nom du fichier xlsx
  json_path = '%s/output/%s.json' % (path, i.name[:-5])  #Chemin de destination de sortie du fichier json
  if os.path.exists(json_path):  #Ignorer si vous avez déjà un fichier json
    print('Skip to %s' % i.name)
  else:
    try:
      spinner.start('Converting: %s' % i.name)
      excel2json.convert_from_file(xlsx_path)  #Convertir en json
    except Exception as inst:  #Échec de la conversion
      spinner.fail(inst)
    else:  #Conversion réussie
      move('%s/Data.json' % path, json_path)  #Data.Renommer et déplacer json
      spinner.succeed('Success: %s.json' % i.name[:-5])
référence:
Recommended Posts