Riceverò un modulo stringa codificato JSON Obj-C e sto decodificando una stringa fittizia (per ora) come il seguente codice. La mia uscita esce con carattere 'u' prefisso ogni voce:Python: json.loads restituisce gli elementi con prefisso 'u'
[{u'i': u'imap.gmail.com', u'p': u'aaaa'}, {u'i': u'333imap.com', u'p': u'bbbb'}...
Come è JSON L'aggiunta di questo unicode char? Qual è il modo migliore per rimuoverlo?
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 ha un pr oblem qui. Tutto non è freddo. Ricevo errori nelle stringhe create da Python quando provo a scrivere queste stringhe su un file. Ad esempio quando python prende "53" da JSON lo trasforma in u'53 'e tenta di scriverlo su un file come carattere esadecimale u' \ xe1 'che fa sì che Python prenda una stringa perfettamente buona e vomiti su di esso: JSON: { "sa_BstDeAv": "53", "sa_BwVUpMx" ... PITONE: {u'sa_BstDeAv ': u'53', u'sa_BwVUpMx' ... ERRORE SU SCRITTURA: Errore di valore (il codec 'ascii' non può codificare il carattere u '\ xe1' nella posizione 5: ordinale non nel range (128)) –
@janehouse la risposta giusta qui è la risposta di jdi pensa che dovresti cambiarlo. – Dekel