必须是unicode而不是python 2上的字符串

时间:2019-01-09 17:49:35

标签: python unicode

我正在尝试在Python 2上运行python 3代码,但这给了我这个错误:

TypeError:必须为unicode,而不是str 我曾尝试在chr(i)之前添加str(),在“ P”之前添加“ u”,但是我显然做错了。

tbl = dict.fromkeys(i for i in range(sys.maxunicode)
                    if unicodedata.category(chr(i)).startswith("P"))
def remove_punctuation(text):
        return text.translate(tbl)

    # initialize the stemmer
    stemmer = LancasterStemmer()
    # variable to hold the Json data read from the file
    data = None

    # read the json file and load the training data
    with open('data.json') as json_data:
        data = json.load(json_data)
        print(data)

1 个答案:

答案 0 :(得分:0)

使用unichr而非chr从Python 2上的序数创建Unicode字符。

tbl = dict.fromkeys(i for i in range(sys.maxunicode)
                    if unicodedata.category(unichr(i)).startswith("P"))

如果可以,请切换到Python 3。 Python 2支持将于明年结束。