찾다

 >  Q&A  >  본문

beautifulsoup - 【答疑】python下如何把unicode编码的数据转为utf-8的?

如题 现在有一个<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中文网2809일 전507

모든 응답(3)나는 대답할 것이다

  • 高洛峰

    高洛峰2017-04-17 17:31:30

    float을 사용하는 것은 가능하지만 부동 소수점 숫자로 변환할 수 없는 u'u8d27u5230u4ed8u6b3e'(货到付款)이 있습니다. 이 요소를 삭제하거나 처리 시 무시하세요.

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:31:30

    출력하려는 ​​데이터 뒤에 encode('utf-8')를 추가하세요

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:31:30

    먼저 다루고 있는 데이터 유형은 <class 'bs4.element.NavigableString'>type입니다.
    BeautifulSoup으로 읽은 html의 NavigableString 유형 데이터입니다.

    실제로 BS4로 읽을 때 인코딩을 사용하여 html의 데이터를 utf-8로 조정해야 합니다

    예:

    으아아아

    그러면 위의 유니코드 태그에 표시된 NavigableString 유형 데이터가 정상적으로 표시됩니다.

    회신하다
    0
  • 취소회신하다