-
Notifications
You must be signed in to change notification settings - Fork 14
Workflow : import de la donnée (obsolète)
Raphael Odini edited this page Nov 25, 2020
·
1 revision
Pouvoir rajouter des jeux de données de diverses sources, au format csv.
Fichier csv --> config d'import en JSON
--> stockage de la config dans un objet DataSource
(champ import_config
) --> ajout des lieux dans la base de donnée
- Télécharger le jeu de donnée (dataset) dans le dossier data
- Si le dataset n'est pas au format csv, le transformer
- Créer dans le même dossier un fichier de config.json qui va définir la configuration de l'import des lieux (marche seulement pour des lieux uniquement, pas encore pour des lieux qui ont des services)
- Créer une nouvelle entrée
DataSource
dans la base de donnée, avec les champs du config.json - Lancer la management commande d'import du dataset (en mettant l'id de la datasource créée à l'étape précedente)
python manage.py load_data_source_csv --id 11
Note: l'étape 3 est "intermédiaire/optionnelle" pour pouvoir construire la config d'import. le fichier config.json ne sera pas utilisé par la suite, car son contenu servira a créer une instance DataSource.
Objet JSON qui contient plusieurs clés (détaillées ci-dessous). Chaque clé correspond à une facon de processer le ou les champs du fichier.
-
place_field
: le champs correspondant dans le modèlePlace
-
file_field
ouvalue
: le champs correspondant dans le fichier csv, ou la valeur à mettre par défaut
optionnel
- valeur par défaut au moment de l'import:
;
- exemple:
"dataset_file_delimiter": ","
optionnel
- exemple:
"place_fields_set": [
{
"place_field": "has_label_fs",
"value": true
}
]
optionnel
- exemple:
"place_fields_mapping_auto": [
{
"place_field": "name",
"file_field": "lib_france_services"
},
{
"place_field": "contact_email",
"file_field": "CONTACT.MAIL"
}
]
optionnel
- exemple:
"place_fields_mapping_boolean": [
{
"place_field": "is_itinerant",
"file_field": "ITINERANCE"
}
]
optionnel
- exemple:
"place_fields_mapping_process": [
{
"place_field": "address_raw",
"file_field": ["ADRESSE", "code_postal", "lib_com"]
},
{
"place_field": "contact_phone_raw",
"file_field": "TELEPHONE"
},
{
"place_field": "opening_hours_raw",
"file_field": "horaires" # ["h_lundi", "h_mardi", "h_mercredi", "h_jeudi", "h_vendredi", "h_samedi"]
}
]
optionnel
- exemple:
"place_fields_mapping_additional_information": [
{
"place_field": "matricule",
"file_field": "MATRICULE"
},
{
"place_field": "complement_address",
"file_field": "COMPLEMENT.D.ADRESSE"
}
]