首页 > 解决方案 > 使用 python 在 REDIS 中处理特殊 JSON 字符

问题描述

我正在尝试将带有特殊字符的 JSON 写入并检索到 REDIS,但特殊字符正在被转换

特殊字符 Mój 被转换为 Mój 并且 Můj 被转换为 Můj

from rejson import Client, Path
import json


rj = Client(host='localhost', port=6360, decode_responses=True)

app_details2 = {
  "applist": [
    {
      "appname": "Mój",
      "country": "PL"
    },
    {
      "appname": "Můj",
      "country": "CZ"
    }   
  ],
  "lasttimestamp": "2021-01-03 12:58:26",
  "loadtype":"F"
}

rj.jsonset('app_details', Path.rootPath(),app_details)
valo = rj.jsonget('app_details',Path('.applist'))
print(type(valo[0]))
print(valo)

for i in valo:
    app = i["appname"]
    country = i["country"]
    print(app)
   

标签: pythonpython-3.xredisredisjson

解决方案


通过向 JSONGET 添加额外参数解决了该问题

valo = rj.jsonget('app_details',Path('.applist'),no_escape=True)

这解决了问题并且数据被正确获取


推荐阅读