UnicodeEncodeError:“ascii”编解码器无法对位置61中的字符“\xf1”进行编码:序号不在范围(128)

2024-04-25 19:40:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python调用googleadwords api,然后将数据记录到CSV文件中,我正在处理UnicodeDecode/EncodeError,我已经尝试了一切方法来理解它,但现在没有用。在

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)

  1. 当我提到“忽略”时,为什么我会首先得到一个错误?在
  2. 如何正确处理?在

奇怪的事情—第222行的stacktrace notes错误,这是一个“encode”错误,据我所知,它试图创建unicode字符串的字节表示。 第222行上需要编码的数据是一个number-int或float!那怎么会找不到127位以下的表示-因此出现了“ascii”编码问题?在

另外,我想到了一个解决方案,如果我编码('ascii','ignore'),那么就不用encode('utf-8','ignore'),它不应该解决问题吗?问题是,这是否是理想的解决方案?在

我甚至打印了原始数据,并在解释器中一步一步地运行这段代码,当时我没有发现任何错误。 请帮帮我。在


Tags: csvnameindatagroupkeywordadutf
1条回答
网友
1楼 · 发布于 2024-04-25 19:40:25

请将python源文件名的(路径)非英文字符(在本例中为“n”)改为英文字符[a-z0-9]和有效的OS filename字符。 我使用pyscripter,我遇到了这样的问题。在

相关问题 更多 >