在 python 中读取 json 文件的表情符号问题

Emoji problem reading json file in python

我有一个 json 文件,其中的字符串包含表情符号

{
   "messages": "This is a test -bla-bla test."
}

我的python代码是:

with open('config.json', 'r') as config_file:
    config = json.load(config_file)
print(config["messages"])

输出为:

This is a test 📑-bla-bla test.

如何解决这个表情符号编码问题?

您可以使用 unidecode 库。首先在终端内进行快速 pip install 安装:

pip install unidecode

然后你可以使用下面的代码:

import unicodedata
from unidecode import unidecode


def deEmojify(inputString):
    returnString = ""

    for character in inputString:
        try:
            character.encode("ascii")
            returnString += character
        except UnicodeEncodeError:
            replaced = unidecode(str(character))
            if replaced != '':
                returnString += replaced
            else:
                try:
                     returnString += "[" + unicodedata.name(character) + "]"
                except ValueError:
                     returnString += "[x]"

    return returnString



string = 'hello__emoji','___free___world'

print(deEmojify(string))

输出

hello__emoji___free___world

希望能帮到你一点忙。 :)

您需要的是确保使用正确的编码保存/读取文件。

with open('config.json', 'r', encoding='utf-8') as config_file: 
    config = json.load(config_file)
print(config["messages"])