在 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"])
我有一个 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"])