我该如何处理?
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')
答案 0 :(得分:4)
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)