2017-01-05 1 views
0

Je travaille avec un grand fichier json.Comment trouver les erreurs json en surbrillance rose en texte sublime

Ce json a été analysé par moi-même en utilisant Python, et (par conséquent) il y a quelques erreurs de validation json à différents points dans le fichier. Je veux identifier ces erreurs afin d'améliorer mon analyseur Python.

Sublime text (2) met utilement en évidence des erreurs de formatage rose dans le json, mais travailler à travers 70 000 000 lignes de json pour trouver ces erreurs est un peu difficile.

Y a-t-il un moyen de passer aux erreurs en surbrillance rose dans le json?

(Note: le fichier JSON est suffisamment grand pour que vous essayez d'utiliser un validateur en ligne par exemple, est impossible)

Merci!

Répondre

1

Cela peut être fait d'une manière sophistiquée en utilisant un plugin, mais pour vos besoins, le meilleur moyen est probablement de simplement entrer une commande dans le console. Ouvrez votre fichier JSON avec des erreurs, puis ouvrez la console avec Ctrl`. Coller le code ci-dessous et cliquez sur Entrez:

view.show_at_center(view.find_by_selector("invalid.illegal")[0]) 

et la vue défile pour afficher la première erreur dans le fichier. Corrigez cette erreur, cliquez de nouveau sur la ligne d'entrée de la console, appuyez sur la flèche du haut pour ramener la commande que vous venez de lancer et tapez Entrez à nouveau, et vous devriez passer à l'erreur suivante, et ainsi de suite. Lorsqu'il n'y a plus d'erreurs, IndexError: list index out of range sera imprimé sur la console et la vue ne défilera plus.


Bien que cela fonctionne dans les deux Sublime Text 2 et 3, je fortement vous invite à passer à ST3 si possible. ST2 a été mis en suspens et obsolète, et il n'y aura plus de corrections de bogues publiées. Le développement est maintenant axé uniquement sur ST3 (tout en étant en cours de planification pour ST4!). "I don't know of any good reason to not use Sublime Text 3" - Will Bond, développeur de noyau ST.

Il y a une tonne de nouvelles fonctionnalités et corrections de bugs dans la nouvelle version, même si vous utilisez simplement le public beta. (BTW, ne laissez pas le mot "bêta" vous tromper - le programme est solide, et a été pendant des années.) Si vous voulez plus de fonctionnalités de pointe, et sont un registered user (que vous devriez être si vous utilisez le programme à long terme ou à des fins commerciales), vous pouvez télécharger le dev builds qui sont mis à jour plus fréquemment, mais exécutez le légère chance d'avoir un bug non détecté ou deux. L'un des principaux avantages de ST3 est qu'il prend désormais en charge un nouveau moteur de mise en surbrillance sublime-syntax basé sur YAML, qui offre une plus grande flexibilité que les anciens fichiers en surbrillance .tmLanguage (qui sont toujours pris en charge). En relation avec cela, les fichiers de syntaxe ont tous été open-sourced et le développement se poursuit très rapidement, même si cela fait quelques mois que la dernière version a été publiée. La principale raison de mettre à niveau est probablement la communauté de plugins. Le Python API interne a été mis à jour en Python 3 (3.3.6, pour être précis), ce qui a eu pour effet secondaire de rendre de nombreux anciens plugins incompatibles.Sauf dans de rares cas, la plupart des plugins supportent maintenant ST3, et beaucoup abandonnent le support de ST2, car il devient trop difficile de maintenir deux bases de code, tout en essayant de développer avec l'API ST2 beaucoup plus limitée. Donc, à moins que vous ne dépendiez absolument d'un ancien plugin ST2 qui ne peut pas être porté, la mise à niveau est certainement le meilleur chemin à prendre.

+0

parfait, merci! En ce qui concerne ST3 vous avez raison, je suis juste resté à 2 car je n'ai pas ressenti le besoin de mettre à niveau mais je suis sûr que si je commence à utiliser 3, je trouverai des raisons de m'en tenir à cela. –