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

  • International Secret Agents Concerts

    Internationa

    2 Aralık 2008
  • Apple&Tech Reviews & Giveaways

    Apple&Tech R

    12 Temmuz 2008
  • Kanál používateľa McsFuego

    Kanál použ

    12 EKİM 2011