beautifulsoup - 【答疑】python下如何把unicode编码的数据转为utf-8的?
PHP中文网
PHP中文网 2017-04-17 17:29:30
0
3
481

如题 现在有一个<class 'bs4.element.NavigableString'>type的数据
打印出来是这个样的
[u'3788.00', u'4788.00', u'6388.00', u'2398.00', u'5687.00', u'4088.00', u'4187.00', u'4087.00', u'2587.00', u'5188.00', u'4887.00', u'4287.00', u'4887.00', u'5787.00', u'4887.00', u'4888.00', u'\u8d27\u5230\u4ed8\u6b3e', u'6388.00', u'4987.00', u'5588.00', u'5588.00', u'5588.00', u'3288.00', u'3888.00', u'4788.00', u'4788.00', u'4788.00', u'4788.00', u'5588.00', u'4088.00', u'4788.00', u'4788.00', u'5588.00', u'5588.00', u'6388.00', u'6388.00', u'4788.00', u'5588.00', u'4988.00', u'4788.00', u'6388.00', u'6388.00', u'6388.00', u'5588.00', u'5588.00', u'5588.00', u'6388.00', u'5588.00', u'5588.00', u'4788.00', u'6388.00', u'6388.00', u'6388.00', u'5588.00', u'5588.00', u'6588.00', u'6588.00', u'5588.00', u'5588.00', u'5788.00']

当我用int()类型转换时 提示我:
ValueError: invalid literal for int() with base 10: '3788.00'

然后就在网上看到有网友说用 round(float(Price))的方法可行 #Price就是那个'class 'bs4.element.NavigableString'类型的数据

但是提示的是:
UnicodeEncodeError: 'decimal' codec can't encode characters in position 0-3: invalid decimal Unicode string

这种情况下如何解决呢? BTW我是想用list.append方法把上面这个列表添加到其他列表的时候出现的报错(可是明明昨晚还能运行的T-T)

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(3)
小葫芦

float を使用することは可能ですが、浮動小数点数に変換できない u'u8d27u5230u4ed8u6b3e'(货到付款) が存在します。この要素は削除するか、処理時に無視してください。

いいねを押す +0
巴扎黑

出力したいデータの後にencode('utf-8')を追加

いいねを押す +0
大家讲道理

まず、扱うデータ型は <class 'bs4.element.NavigableString'>type
BeautifulSoupで読み込んだHTMLのNavigableString型データです。

実際、BS4 で読み取る場合は、エンコードを使用して html 内のデータを utf-8 に調整する必要があります

例:

リーリー

そうすると、上記のunicodeタグ内に表示されていたNavigableString型のデータが正常に表示されるようになります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!