Python UnicodeEncodeError:&x27;ascii';编解码器可以';t编码字符'\xf1和x27;位置61:序号不在范围内(128)
我用Python调用google adwords api,然后将数据记录到CSV文件中,我正在处理UnicodeDecode/encode错误,我已经尝试了所有方法来理解它,但现在都没有用Python UnicodeEncodeError:&x27;ascii';编解码器可以';t编码字符'\xf1和x27;位置61:序号不在范围内(128),python,encoding,python-3.4,Python,Encoding,Python 3.4,我用Python调用google adwords api,然后将数据记录到CSV文件中,我正在处理UnicodeDecode/encode错误,我已经尝试了所有方法来理解它,但现在都没有用 with open('adgroups.csv', 'w', newline='') as csvfile: campaign_name = seed_keyword.title().encode('utf-8','ignore').decode() kw_writer = csv.write
with open('adgroups.csv', 'w', newline='') as csvfile:
campaign_name = seed_keyword.title().encode('utf-8','ignore').decode()
kw_writer = csv.writer(csvfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
kw_writer.writerow(
["CAMPAIGN", "ADGROUP", "MAX BID", "KEYWORD", "MATCH TYPE", "AVERAGE CPC", "SEARCH VOLUME", "COMPETITION"])
for ad_group in ad_group_list:
ad_group_name = ad_group['keyword'].title().encode('utf-8','ignore').decode()
try:
for keyword_data in ad_group['keyword_data_list']:
kw_writer.writerow(
[campaign_name, ad_group_name, str(ad_group['rpc'] * 0.5).encode('utf-8','ignore').decode(), keyword_data['kw'].encode('utf-8','ignore').decode(), "BROAD",
str(keyword_data['cpc']).encode('utf-8','ignore').decode(),
str(keyword_data['search_volume']).encode('utf-8','ignore').decode(), str(keyword_data['competition']).encode('utf-8','ignore').decode()])
kw_writer.writerow(
[campaign_name, ad_group_name, str(ad_group['rpc'] * 0.5).encode('utf-8','ignore').decode(), keyword_data['kw'].encode('utf-8','ignore').decode(), "PHRASE",
"",
"", ""])
kw_writer.writerow(
[campaign_name, ad_group_name, str(ad_group['rpc'] * 0.5).encode('utf-8','ignore').decode(), keyword_data['kw'].encode('utf-8','ignore').decode(), "EXACT",
"",
"", ""])
except UnicodeError as e:
print(e)
print(str(ad_group))
raise
File "/var/www/html/ARB-Automation/MultiProcessController.py", line 158, in perform_automation
CSVCampaignSetup.get_in_kw_and_make_adgroups(seed_keyword, ad_group_bid_mapping, cluster_bid_dict)
File "/var/www/html/ARB-Automation/CSVCampaignSetup.py", line 163, in get_in_kw_and_make_adgroups
make_single_adgroup_csv(best_ad_group_data)
File "/var/www/html/ARB-Automation/CSVCampaignSetup.py", line 222, in make_single_adgroup_csv
str(keyword_data['search_volume']).encode('utf-8','ignore').decode(), str(keyword_data['competition']).encode('utf-8','ignore').decode()])
UnicodeEncodeError:“ascii”编解码器无法对位置61中的字符“\xf1”进行编码:序号不在范围内(128)
请帮助我。请将python源文件名的(路径)非英语字符(在本例中为ñ)更改为英语字符[a-z0-9]和有效的OS文件名字符。
我使用pyscripter,我遇到了类似的问题。请将python源文件名的非英语字符(在本例中为ñ)更改为英语字符[a-z0-9]和有效的OS文件名字符。
我使用pyscripter,我遇到了类似的问题。如果没有更多的代码,很难确定,但是当您尝试将unicode字符串打印到ascii文件或终端时,或者如果您设法将默认编码设置为ascii而不是utf8,则可能会发生此错误。我正在尝试写入csv文件。如果尝试
str(关键字\u data['search\u volume']),会发生什么情况.encode('utf-8')
(也适用于关键字_数据['competition']
),没有任何'ignore'
或.decode()
?如何打开文件并创建csv编写器?@JamesLemieux,'ignore'基本上是说,如果无法对字符串的一部分进行编码,而不是引发错误,则忽略输出中的字符串。所以理想情况下,在这种情况下应该没有错误……如果没有更多的代码,很难确定,但是当您尝试将unicode字符串打印到ascii文件或终端时,或者如果您设法将默认编码设置为ascii而不是utf8,则可能会发生此错误。我正在尝试写入csv文件。如果尝试str(关键字\u data['search\u volume']),会发生什么情况.encode('utf-8')
(也适用于关键字_数据['competition']
),没有任何'ignore'
或.decode()
?如何打开文件并创建csv编写器?@JamesLemieux,'ignore'基本上是说,如果无法对字符串的一部分进行编码,而不是引发错误,则忽略输出中的字符串。所以理想情况下,在这种情况下应该没有错误。。。