Django ArrayField的序列化转义了带有太多反斜杠的重音字符

pzi*_*ijd 5 django postgresql encoding json

Django为我们提供了ArrayField:一个PostgreSQL特定的模型字段,允许存储数据列表.

我用它来模拟Article对象:

authors = ArrayField(models.Charfield) 
title = models.CharField
Run Code Online (Sandbox Code Playgroud)

例如,这是数据库中的一个条目:

  • authors = {"PierreStévens","Jacques Dupont"}
  • title = Sur leterraincrétacédeLiège

我想将所有文章导出为JSON:

query_set = Article.objects.all()
articles_json = serialize('json', fields('authors', 'title')
Run Code Online (Sandbox Code Playgroud)

ArrayField"authors"的序列化使用四个反斜杠而不是两个反转字符"é".常规"标题"字段已正确转义.看看差异:

articles_json = {"title":"Sur le terrain cr\\u00e9tac\\u00e9 de Li\\u00e9ge", "authors": "[\\"Pierre St\\\\u00e9\\", "Jacques Dupont"]"}
Run Code Online (Sandbox Code Playgroud)

客户不理解这一点.为了使它工作,我只是搜索并替换字符串

articles_json = articles_json.replace('\\\\','\\')
Run Code Online (Sandbox Code Playgroud)

我真的不确定这个解决方法.你有没有试过这个问题?你是怎么解决的?