[PYTHON] 100 coups de traitement du langage amateur: 62

C'est un record de défi de 100 langues de traitement knock 2015. L'environnement est Ubuntu 16.04 LTS + Python 3.5.2 : : Anaconda 4.1.1 (64 bits). Cliquez ici pour une liste des coups passés (http://qiita.com/segavvy/items/fb50ba8097d59475f760).

Chapitre 7: Base de données

artist.json.gz est un fichier de la base de données musicale ouverte MusicBrainz qui est converti au format JSON et compressé au format gzip. Dans ce fichier, les informations sur un artiste sont stockées sur une seule ligne au format JSON. Le contour du format JSON est le suivant.

champ Moule Contenu Exemple
id Identifiant unique entier 20660
gid Identifiant global Chaîne "ecf9f3a3-35e9-4c58-acaa-e707fba45060"
name nom d'artiste Chaîne "Oasis"
sort_name Nom de l'artiste (pour le diagnostic de l'ordre) Chaîne "Oasis"
area Lieu d'activité Chaîne "United Kingdom"
aliases alias Liste des objets de dictionnaire
aliases[].name alias Chaîne "oasis"
aliases[].sort_name Alias (pour l'alignement) Chaîne "oasis"
begin Date de début de l'activité dictionnaire
begin.year Année de début d'activité entier 1991
begin.month Mois de début d'activité entier
begin.date Date de début de l'activité entier
end Date de fin de l'activité dictionnaire
end.year Fin d'année d'activité entier 2009
end.month Mois de fin d'activité entier 8
end.date Date de fin de l'activité entier 28
tags marque Liste des objets de dictionnaire
tags[].count Nombre de balises entier 1
tags[].value Contenu du tag Chaîne "rock"
rating Évaluation Objet dictionnaire
rating.count Nombre de votes pour la notation entier 13
rating.value Valeur de notation (valeur moyenne) entier 86

Envisagez de stocker et de récupérer les données artist.json.gz dans les bases de données Key-Value-Store (KVS) et orientées document. Utilisez LevelDB, Redis, Kyoto Cabinet, etc. comme KVS. MongoDB a été adopté comme base de données orientée document, mais CouchDB, RethinkDB, etc. peuvent également être utilisés.

62. Traitement itératif dans KVS

Trouvez le nombre d'artistes dont le lieu d'activité est "Japon" à l'aide de la base de données construite en> 60.

Le code fini:

main.py


# coding: utf-8
import leveldb

fname_db = 'test_db'

#LevelDB ouvert
db = leveldb.LevelDB(fname_db)

#La valeur est'Japan'Énumérer
clue = 'Japan'.encode()
result = [value[0].decode() for value in db.RangeIter() if value[1] == clue]

#Affichage du nombre
print('{}Cas'.format(len(result)))

Résultat de l'exécution:

Résultat d'exécution


22821

Énumération LevelDB

Le contenu de l'enregistrement a été énuméré en acquérant l'itérateur avec LevelDB.RangeIter ().

C'est tout pour le 63e coup. Si vous avez des erreurs, je vous serais reconnaissant de bien vouloir les signaler.


Recommended Posts

100 coups de traitement du langage amateur: 41
100 coups de traitement du langage amateur: 71
100 coups de traitement du langage amateur: 56
100 coups de traitement du langage amateur: 24
100 coups de traitement du langage amateur: 59
100 coups de traitement du langage amateur: 70
100 coups de traitement du langage amateur: 62
100 coups de traitement du langage amateur: 60
100 coups de traitement du langage amateur: 92
100 coups de langue amateur: 30
100 coups de langue amateur: 06
100 coups de traitement du langage amateur: 84
100 coups de traitement du langage amateur: 81
100 coups de langue amateur: 33
100 coups de traitement du langage amateur: 46
100 coups de traitement du langage amateur: 88
100 coups de traitement du langage amateur: 89
100 coups de traitement du langage amateur: 40
100 coups de traitement du langage amateur: 45
100 coups de traitement du langage amateur: 43
100 coups de traitement du langage amateur: 55
100 coups de traitement du langage amateur: 22
100 coups de traitement du langage amateur: 61
100 coups de traitement du langage amateur: 94
100 coups de traitement du langage amateur: 54
100 coups de langue amateur: 04
100 coups de traitement du langage amateur: 63
100 coups de traitement du langage amateur: 78
100 coups de traitement du langage amateur: 12
100 coups de traitement du langage amateur: 14
100 coups de langue amateur: 08
100 coups de traitement du langage amateur: 42
100 coups de traitement du langage amateur: 19
100 coups de traitement du langage amateur: 73
100 coups de traitement du langage amateur: 75
100 coups de traitement du langage amateur: 98
100 coups de traitement du langage amateur: 83
100 coups de traitement du langage amateur: 95
100 coups de traitement du langage amateur: 32
100 coups de traitement du langage amateur: 96
100 coups de traitement du langage amateur: 87
100 coups de traitement du langage amateur: 72
100 coups de traitement du langage amateur: 79
100 coups de traitement du langage amateur: 23
100 coups de langue amateur: 05
100 coups de langue amateur: 00
100 coups de langue amateur: 02
100 coups de traitement du langage amateur: 37
100 coups de traitement du langage amateur: 21
100 coups de traitement du langage amateur: 68
100 coups de traitement du langage amateur: 11
100 coups de traitement du langage amateur: 90
100 coups de traitement du langage amateur: 74
100 coups de traitement du langage amateur: 66
100 coups de traitement du langage amateur: 28
100 coups de traitement du langage amateur: 64
100 coups de traitement du langage amateur: 34
100 coups de traitement du langage amateur: 36
100 coups de traitement du langage amateur: 77
100 coups de langue amateur: 01
100 coups de traitement du langage amateur: 16