Nasıl Unicode olanları yerine string Nesneleri almak için Python ile JSON dan?
Python ile JSON ayrıştırmak için kullanıyorum (ASCII kodlanmışmetin dosyaları. Ya json
simplejson
tüm dize ile bu dosyaları yüklerken değerleri string nesneleri yerine nesneleri Unicode için atama.
Sorun, sadece string kabul eden bazı kütüphaneler ile verileri kullanmak zorunda. Kitaplıkları değiştirme ne de güncelleme yapamıyorum.
String nesneleri yerine json
simplejson
olanlar unicode almak mümkün müdür?
İşte küçük bir örnek:
>>> import json
>>> original_list = ['a', 'b']
>>> json_list = json.dumps(original_list)
>>> json_list
'["a", "b"]'
>>> new_list = json.loads(js)
>>> new_list
[u'a', u'b'] # I want these to be of type `str`, not `unicode`
CEVAP
Varken bazı iyi cevaplar burada sona erdi kullanma PyYAML ayrıştırma benim JSON dosyalarını beri verdiği anahtarları ve değerleri gibi str
tür dizeleri yerine unicode
yazın. JSON beri bu güzel çalışıyor, YAML alt:
>>> import json
>>> import yaml
>>> list_org = ['a', 'b']
>>> list_dump = json.dumps(list_org)
>>> list_dump
'["a", "b"]'
>>> json.loads(list_dump)
[u'a', u'b']
>>> yaml.safe_load(list_dump)
['a', 'b']
Bazı şeyler olsa da not:
Anladımstring nesneleritüm kayıtları vardır çünküASCII kodlanmış. Eğer unicode kodlanmış girişleri kullanmak olsaydı, onları geri almak istiyorumunicode nesneleri— dönüşüm yoktur.
safe_load
Bu işlev; eğer JSON dosyaları yüklemek için kullanırsanız, ""load
işlevi zaten. ek güç gerekmez (her zaman muhtemelen) PyYAML kullanmalısınızEğer istediğiniz bir YAML parser fazla destek için 1.2 sürümü spec (correctly parses very low numbers) deneyin Ruamel YAML:
pip install ruamel.yaml
import ruamel.yaml as yaml
tüm ihtiyacım benim testleri.
Belirtildiği gibi, dönüşüm yok! Eğer sadece ASCII değerleri ve çoğu zaman olamazsın) ile başa çıkmak için emin olabilirsiniz, eğer değil, daha iyi bir kullanımdönüştürme fonksiyonu. Gelen bir şey vardıMark Amerykere ve de kullanabilirsin object_hook
olarak harika çalışıyor veya kendi içinde birkaç 20**.
Nasıl Python ile şimdiki zaman almak i...
Nasıl Krom XML yerine JSON dönmek için...
Nasıl Python ile bir mutlak dosya yolu...
Nasıl Python sistem hostname almak içi...
Nasıl nesnelerin öznitelik dayalı Pyth...