首页 > 解决方案 > 尝试跳过列表中的 unicode 值以写入树视图

问题描述

我正在尝试将数据从 Strava 写入树视图,但是,当它写入时,我会收到错误消息

_tkinter.TclError: character U+1f1e8 is above the range (U+0000-U+FFFF) allowed by Tcl

我意识到这是由于有人以他们的骑行名义使用了表情符号。我编写的代码只跳过了一些 Unicode 值而不是其他值。我的代码如下所示:

    count = 0
    distanceM = 0
    distanceML = 0
    elevationM = 0
    elevationFT = 0
    full_name = ""
    for row in strava.get_children():
        strava.delete(row)


    auth_url = "https://www.strava.com/oauth/token"
    activites_url = "https://www.strava.com/api/v3/clubs/2885/activities"

    payload = {
        'client_id': "XXXXX",
        'client_secret': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
        'refresh_token': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
        'grant_type': "refresh_token",
        'f': 'json'
    }
    res = requests.post(auth_url, data=payload, verify=False)
    access_token = res.json()['access_token']
    ride_name = ""
    header = {'Authorization': 'Bearer ' + access_token}
    param = {'per_page':200, 'page':1}
    my_dataset = requests.get(activites_url, headers=header, params=param).json()

    for i in range (0,len(my_dataset)):
        entry = 1
        strava.tag_configure('odd',background = "#fc4d03")
        strava.tag_configure('even', background = 'white')
        full_name = str(my_dataset[i]["athlete"]["firstname"])+ " " + str(my_dataset[i]["athlete"]["lastname"])
        distanceM = int(my_dataset[i]["distance"])
        distanceML = distanceM * 0.000621371
        distanceML = '%.2f'%(distanceML)
        elevationM = int(my_dataset[i]["total_elevation_gain"])
        elevationFT = elevationM * 3.28084
        elevationFT = '%.0f'%(elevationFT)
        ride_name = (my_dataset[i]["name"])
        try:
            ride_name.encode('ascii')
        except UnicodeEncodeError:
            entry = 0
        if entry == 1:
            if count%2 == 0:
                strava.insert("", "end", text="", values=(full_name,my_dataset[i]["name"],distanceML,elevationFT), tag = ('even',))
            else:
                strava.insert("", "end", text="", values=(full_name,my_dataset[i]["name"],distanceML,elevationFT), tag = ('odd',))

            count = count+1

标签: python-3.xunicodetreeviewemojistrava

解决方案


推荐阅读