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

  • bobinire

    bobinire

    24 EYLÜL 2006
  • BrandonHarrisWalker

    BrandonHarri

    27 Kasım 2006
  • ThisWeekYT

    ThisWeekYT

    14 Mart 2013