【问题标题】:UnicodeEncodeError: 'cp949' codec can't encode characterUnicodeEncodeError:“cp949”编解码器无法编码字符
【发布时间】:2017-10-04 21:34:04
【问题描述】:

我该如何处理?

wfile.write(data['text']+'\n')

UnicodeEncodeError: 'cp949' 编解码器无法编码字符

import tweepy
import time
import os
import json

search_term1 = '' 
search_term2 = ''  

lat = ""
lon = ""
radius = ""
location = "%s,%s,%s" % (lat, lon, radius)  

auth = tweepy.OAuthHandler(API_key, API_secret)
auth.set_access_token(Access_token, Access_token_secret)

api = tweepy.API(auth)      

c=tweepy.Cursor(api.search,
            q="{}+OR+{}".format(search_term1, search_term2),   
            rpp=1000,    
            geocode=location, 
            include_entities=True)


wfile = open(os.getcwd()+"/test1.txt", mode='w')   
data = {}
i = 1
for tweet in c.items():            

    data['text'] = tweet.text
    print(i, ":", data)
    wfile.write(data['text']+'\n')  
    time.sleep(0.5)                 
    i += 1

wfile.close()

我通过修改互联网得到这个错误。

TypeError: write() 没有关键字参数

wfile.write(data['text']+'\n',encoding='UTF8')  

TypeError: write() 只接受一个参数(给定 2 个)

 wfile.write(data['text']+'\n','utf-8')  

【问题讨论】:

    标签: python parsing unicode utf-8 encode


    【解决方案1】:

    cp949 是您的 Windows 系统的默认区域设置,这也是 open() 默认设置的。来自open() documentation

    encoding 是用于对文件进行解码或编码的编码名称。这应该只在文本模式下使用。默认编码取决于平台(无论 locale.getpreferredencoding() 返回什么),但可以使用 Python 支持的任何文本编码。

    打开文件时指定不同的编解码器:

    wfile = open(os.getcwd()+"/test1.txt", mode='w', encoding='utf8')   
    

    请注意,打开没有路径的文件时,不需要在前面加上os.getcwd(),默认使用工作目录作为相对路径:

    wfile = open("test1.txt", mode='w', encoding='utf8')   
    

    您最好使用os.path.join() 为其他所有内容构建路径。

    您的代码可以使用enumerate() 和上下文管理器进一步简化。 data 字典在这里用处不大,只是到处引用tweet.text

    with open(os.getcwd()+"/test1.txt", mode='w') as wfile:
        for i, tweet in enumerate(c.items()):
            print("{}: {}".format(i, tweet.text))
            wfile.write(tweet.text + '\n')
            time.sleep(0.5)
    

    【讨论】:

      猜你喜欢
      • 2014-01-26
      • 2015-10-21
      • 2010-12-11
      • 2015-01-21
      相关资源
      最近更新 更多