SORU
27 AĞUSTOS 2009, PERŞEMBE


Nasıl python yorumlayıcısı yapmak doğru ASCII olmayan karakterler string işlemleri için ele?

Çok benzeyen bir dize var:

6 918 417 712

Bu dize kesmek için kesin şekilde Python anladığım kadarıyla () sadece bir dize değişkeni s gelir . denir

s.replace('Â ', '')

Bu hile yapmak gerekir. Ama tabii ki non-ASCII karakter dosya blabla.py '\xc2' kodlanmış olmadığını yakınıyor.

Ben oldukça farklı kodlamalar arasında geçiş yapmak için nasıl anlamak olabilir.

Burada kod var. gerçekten sadece yukarıdaki gibi aynı, ama şimdi ödeniyor. Dosyayı Not Defteri'nde UTF-8 olarak kaydedilir ve aşağıdaki Başlığı vardır:

#!/usr/bin/python2.4
# -*- coding: utf-8 -*-

Kod:

f = urllib.urlopen(url)

soup = BeautifulSoup(f)

s = soup.find('div', {'id':'main_count'})

#making a print 's' here goes well. it shows 6Â 918Â 417Â 712

s.replace('Â ','')

save_main_count(s)

s.replace... daha fazla oluyor

CEVAP
27 AĞUSTOS 2009, PERŞEMBE


def removeNonAscii(s): return "".join(filter(lambda x: ord(x)<128, s))

edit: benim ilk dürtü her zaman bir filtre kullanmaktır, ama jeneratör deyim daha hızlı ve daha kısa

def removeNonAscii(s): return "".join(i for i in s if ord(i)<128)

Bu UTF-8 ile çalışmak için kodlama multi-byte karakter tüm bayt en yüksek bit 1 olarak ayarlanmış çünkü) garantili olduğunu unutmayın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Djbasilio AuToBaSs

    Djbasilio Au

    20 Aralık 2008
  • Erica Griffin

    Erica Griffi

    8 HAZİRAN 2009
  • 10 Daughters, 2 Sons

    10 Daughters

    10 Mart 2009