0
votes

Serialize coordonnées à Json de Python

J'ai une partie avec un monde infini, alors je le rends à l'aide de morceaux. Ces morceaux sont stockés dans un dict comme celui-ci:

chunks = {
    (0,0) : {
        'floor' : 'stuff', 
        'items' : {}
    },
    (1,0) : {
        'floor' : 'more stuff', 
        'items' : {}
    }
}


3 commentaires

"Coordonnées du morceau comme clé de la dicte" Pouvez-vous expliquer cela


@ komatiraju032 désolé, je suis espagnol et mon anglais n'est pas le meilleur. Chaque morceau est stocké dans la dicte avec ses coordonnées comme clé. Je veux que la clé soit une tuple afin que je puisse utiliser (x, y) dans mon code


Pourquoi Json? Vous le sauve-vous ou l'envoyez-vous à une autre application (non écrite en Python)?


3 Réponses :


1
votes

En réalité, JSON avait besoin de vos clés pour être en chaîne. Vous pouvez convertir vos clés dans la chaîne et stockez-la dans JSON et lorsque vous devez récupérer vos valeurs que vous pouvez les revenir à la forme d'origine. Dans le code ci-dessous, j'ai essayé de mon mieux pour résoudre votre problème

import json
chunks = {
          (0,0) : {
                   'floor' : 'stuff', 
                   'items' : {}
                  },
          (1,0) : {
                   'floor' : 'more stuff', 
                   'items' : {}
                  }
         }

# To store dict into json
chunks = {str(k): v for k,v in chunks.items()}
stored_in_json = json.dumps(chunks)

# Load json and revert it back to the orignal shape
chunks = {eval(k): v for k,v in json.loads(stored_in_json).items()}


0 commentaires

0
votes

Je me sens comme Pickle est ce dont vous avez besoin ici. Vous pouvez lire à propos de la différence avec JSON ici . Dans votre cas, cela donnerait:

économie xxx

chargement xxx < / Pré>

qui vous donne exactement le même dictionnaire que vous avez enregistré (en format binaire). Je pense qu'utiliser JSON n'a de sens que si vous envisagez de le partager avec une autre application, en particulier avec une application non python:

JSON est interopérable et largement utilisé à l'extérieur de l'écosystème Python, tandis que le cornichon est spécifique à Python;


0 commentaires

0
votes

Utilisation de deux méthodes d'assistance create_json () et create_dict () .

create_json () Mody stocker le dictionnaire dans le fichier JSON par Conversion des touches de tuple en chaînes.

create_dict () Méthode Créez le dictionnaire du fichier JSON créé avec Créer_json () Méthode. xxx


0 commentaires