2 Stimmen

Django JSONField Codierung Fließkommawerte als Zeichenfolgen?

Ich speichere das folgende einfache, gültige JSON-Objekt in einem Modell in meiner Django-App:

{
    "start_date": 1311471044.24338
    "post_count": 25
}

Das Modell sieht folgendermaßen aus:

from django.db import models
from django_extensions.db.fields import json as json

class UserProfile(models.Model):
   data = json.JSONField()

Um die geposteten Daten zu lesen, mache ich grundsätzlich

posted_data = request.FILES.get('posted_data').read()
json_data = simplejson.loads(posted_data)

Die Daten enthalten dann den erwarteten Typ (Float)

logging.debug( "start_date type: " + str(type(json_data.get('start_date'))))
logging.debug( "post_count type: " + str(type(json_data.get('post_count'))))

>> 2011-07-24 10:03:01,636 DEBUG start_date type: <type 'float'>
>> 2011-07-24 10:03:01,636 DEBUG post_count type: <type 'int'>

Ich speichere die Daten dann wie folgt:

user_profile.data = json_data
user_profile.save()

und dann lese ich die Daten zurück, Ganzzahlen sind in Ordnung, aber Fließkommazahlen werden z. B. angegeben:

print user_profile.data

{
    "post_count : 25
    "start_date": "1311471044.24338"
}

Wie kann ich verhindern, dass Fließkommazahlen unnötigerweise in Zeichenketten umgewandelt werden?

Edit :

Vielleicht haben Sie hier eine Erklärung gefunden: Rails JSON Serialisierung von Decimal fügt Anführungszeichen

Ich wäre aber trotzdem an anderen Erklärungen interessiert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X