Ich erhalte eine JSON-codierte String-Form Obj-C, und ich entziffere eine Dummy-Zeichenkette (vorerst) wie der Code unten. Meine Ausgabe kommt mit dem Zeichen "u" vor jedem Element:Python: json.loads gibt Items mit dem Präfix 'u' zurück
[{u'i': u'imap.gmail.com', u'p': u'aaaa'}, {u'i': u'333imap.com', u'p': u'bbbb'}...
Wie fügt JSON dieses Unicode-Zeichen hinzu? Was ist der beste Weg, um es zu entfernen?
mail_accounts = []
da = {}
try:
s = '[{"i":"imap.gmail.com","p":"aaaa"},{"i":"imap.aol.com","p":"bbbb"},{"i":"333imap.com","p":"ccccc"},{"i":"444ap.gmail.com","p":"ddddd"},{"i":"555imap.gmail.com","p":"eee"}]'
jdata = json.loads(s)
for d in jdata:
for key, value in d.iteritems():
if key not in da:
da[key] = value
else:
da = {}
da[key] = value
mail_accounts.append(da)
except Exception, err:
sys.stderr.write('Exception Error: %s' % str(err))
print mail_accounts
Python hat einen pr hier ein Problem. Alles ist nicht kalt. Ich bekomme Fehler in den Strings, die Python erstellt, wenn ich versuche, diese Strings in eine Datei zu schreiben. Zum Beispiel, wenn Python "53" von JSON nimmt, verwandelt es sich in u'53 'und versucht, es in eine Datei als Hexadezimalzeichen u' \ xe1 'zu schreiben, was Python dazu bringt, eine vollkommen gute Zeichenkette zu nehmen und zu kotzen: JSON: { "sa_BstDeAv": "53", "sa_BwVUpMx" ... PYTHON: {u'sa_BstDeAv ': u'53', u'sa_BwVUpMx‘... Fehler beim Schreiben: Wert Fehler ('Ascii' Codec kann nicht codieren Zeichen u '\ xe1' in Position 5: Ordnungszahl nicht im Bereich (128)) –
@janehouse die richtige Antwort hier ist die Antwort von JDI ich wirklich denke du solltest es ändern. – Dekel