Bien qu'elles soient écrites au format JSON, les données dans un format autre que JSON ont été publiées par une organisation appelée Cabinet Office, je vais donc résumer comment enregistrer les données au format JSON avec python

([Ajout] Comme mentionné dans le commentaire, avec la coopération de gc373, les données du problème ont été corrigées en JSON.) Les données sont importantes. De bonnes données apporteront une bonne valeur à la société. De bonnes données sont non seulement importantes pour avoir des informations précieuses, mais aussi pour être faciles à manipuler. Facile à utiliser signifie que vous pouvez facilement accéder et lire les données. Il est gênant d'avoir un format de logiciel spécial ou quelque chose de plus écrit que les humains doivent lire avant de lire. SHIFT_JIS est également un problème.

Cependant, quelque chose ne peut être fait qu'avec les données, et il faut comprendre que le gouvernement a commencé à publier les données sous forme de données ouvertes. Cependant, le savoir-faire sur le type de données à publier est insuffisant.

En passant, il existe un site appelé http://www.data.go.jp/, et il semble que d'innombrables données puissent être obtenues. Je suis sûr qu'il existe des données enfouies qui peuvent améliorer notre pays. Attendant ..., je l'ai touché un instant. Pour le moment, j'ai vu Liste des métadonnées pour juillet 2016, donc je me demandais ce qui était écrit. J'ai donc téléchargé le JSON.

import json
text = "".join(open("hoge.json").readlines())
data = json.loads(text)

Si vous le faites, vous pourrez le lire. Il était censé être. Mais ça ne marche pas. Je n'ai pas pu m'en empêcher, j'ai donc jeté un coup d'œil au dossier. Alors qu'est-ce que c'est?

[{u'license_title': None, u'maintainer': None,・ ・ ・

JSON est une donnée conforme au format javascript. Cependant, il n'y a rien de tel en javascript. Il n'y a pas de grammaire comme u'hoge '. Ouais, ce n'est pas JSON.

Au contraire, aucun ne serait python. On soupçonnait que cela aurait pu générer les données python sans les convertir en json. Alors, sans égard pour le danger,

data = eval(text)

Quand je l'ai essayé, les données pouvaient être lues sans aucune erreur. Bien sûr, cette méthode est très dangereuse. S'il contient des pièces malveillantes, il n'y aura pas de grumeaux. Ce n'est pas correct parce que ce sont des données publiées par le gouvernement, mais j'ai décidé de blâmer le gouvernement si quelque chose arrivait. Un bon enfant ne doit pas imiter. En fait, l'utilisation du processeur a atteint 100% et 16 Go de mémoire ont été utilisés.

Maintenant, sauvegardons les données lues dans JSON cette fois.

with open("out.json", "w") as f:
    f.write(json.dumps(data))

Vous l'avez enregistré avec succès en tant que json. Je suis heureux.

Après cela, j'ai pensé que je me plaindrais du fait que les données étaient incorrectes même à la réception d'avis, mais quand j'ai suivi le lien de réception d'avis, il a dit "Ce n'est pas une connexion sécurisée" et a demandé une correction. Je ne peux pas faire ça. Alors j'ai écrit quelque chose comme ça ici.

N'y a-t-il pas de bonnes données quelque part ...

Recommended Posts

Bien qu'elles soient écrites au format JSON, les données dans un format autre que JSON ont été publiées par une organisation appelée Cabinet Office, je vais donc résumer comment enregistrer les données au format JSON avec python
Comment saisir une chaîne de caractères en Python et la sortir telle quelle ou dans la direction opposée.
Comment retourner les données contenues dans le modèle django au format json et les mapper sur le dépliant
[Python] Comment obtenir une valeur avec une clé autre que value avec Enum
L'histoire de la création d'un outil pour charger une image avec Python ⇒ l'enregistrer sous un autre nom
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
J'ai créé un script pour vérifier si l'anglais est entré dans la position spécifiée du fichier JSON en Python.