Importer fichier json à Django modèle
J'ai un fichier au format json, avec une telle structure:
{
"Admiralty Islands": [
[
"Up to 1 kg",
"5.00"
],
[
"1 - 10 kg",
"10.00"
],
],
"Afghanistan": [
[
"Up to 1 kg",
"15.00"
],
[
"1 - 10 kg",
"20.00"
],
],
...
}
Et un de trois modèles:
class Country(models.Model):
name = models.CharField(max_length=128, unique=True)
class Weight(models.Model):
name = models.CharField(max_length=128, unique=True)
min_weight = models.IntegerField()
max_weight = models.IntegerField()
class Shipping(models.Model):
country = models.ForeignKey(Country)
weight = models.ForeignKey(Weight)
price = models.DecimalField(max_digits=7, decimal_places=2)
Quelle est la plus correcte pour les importer dans la base de données à l'aide d'un fichier json?
Devrais-je convertir le fichier json en luminaire fichier? Mais que faire avec les relations entre les tables?
Ou est-il préférable d'écrire le view
comme:
f = open('file.json', 'r')
obj = simplejson.load(f)
for o in obj:
record = Country(name = o)
record.save()
Mais aussi ne peuvent pas comprendre comment faire des relations entre les models
.
Ou est-il un moyen plus facile?
Grâce.
OriginalL'auteur vlad | 2012-03-10
Vous devez vous connecter pour publier un commentaire.
Utilisation manage.py pour importer des appareils:
OriginalL'auteur Douwe van der Meij
Je ne vois pas une structure très claire dans votre json dans un sens qu'il n'est pas explicitement définie n'importe où le champ doit aller dans le modèle et comment tout est lié. Donc je vous conseille juste de faire un script d'importation dans lequel manuellement passer à travers tout le json et de créer des instances de modèle.
Un bon exemple à mon avis de bien structuré json est la sortie du Django de sérialisation. Vous pouvez prendre un coup d'oeil ici.
OriginalL'auteur miki725
Bien pour les données en
json
pour être renseigné dans la base de données:Vous devez mapper les champs de données de json à la base de données.
Le meilleur et le préféré ou plutôt la façon de faire cela est de faire utiliser des appareils d'éclairage.
Pour la cartographie de Django, la Sérialisation est le moyen de ALLER.
OriginalL'auteur Yugal Jindle
Django a beaucoup évolué depuis que cette question a été posée. En Vertu De Django 2.x, probablement la meilleure façon avec le moins grand nombre de l'introduction des dépendances est d'utiliser Django intégré dans sérialiseurs (comme mentionné par @miki725) et les migrations de données. Cela permettra à vos données pour obtenir chargé chaque fois que vous exécuter les migrations (y compris lorsque les migrations sont exécutés avant l'exécution des tests unitaires).
OriginalL'auteur hlongmore