【问题标题】:Python write to file utf-8Python 写入文件 utf-8
【发布时间】:2016-01-28 19:27:31
【问题描述】:

我正在编写一个基于 tweepy 的机器人。我已经提取了所需的信息,并正在尝试将该信息写入文本文件以进行进一步解析。但是我在使用 f.write 时遇到了问题,并且不确定如何解决这个问题。如果这在其他地方有所涉及,请原谅我,虽然我搜索过,但我对编程还是很陌生。

我忽略了身份验证。

#!/usr/bin/python

searchQuery = 'foo'
fName = 'log.txt'
tweets = api.search(q=searchQuery,count=3,result_type="recent")
with open(fName, 'w') as f:
    for tweet in tweets:
        tweetText = tweet.text
        f.write(tweetText)
        print [tweetText]

错误:UnicodeEncodeError:'ascii'编解码器无法在位置 139 编码字符 u'\u2026':序数不在范围内 (128)

【问题讨论】:

  • 试试open(fName, 'w', encoding='utf-8')codecs.open;见stackoverflow.com/questions/9942594/…
  • 您在 python 3.x 中使用的是 python 2.x 还是 3.x,您的打印语句需要括号。
  • 2.x 很抱歉漏掉了。
  • @ImNotLeet 尝试使用 import codecscodecs.open(fName, 'w', encoding='utf-8'),因为您使用的是 python 2.x
  • @J.J.Hakala Ty 先生解决了我的问题。

标签: python tweepy


【解决方案1】:

您必须验证您从通话中收到的内容。 Python 2.x 仅在可以用 ASCII 编码时才打印。 此外,unicode (U+2026) 代表一个水平省略号,这表明文本可能被截断。

试试

 print tweetText.encode("utf-8")

【讨论】:

    猜你喜欢
    • 2011-05-06
    • 2020-08-09
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    相关资源
    最近更新 更多