【问题标题】:How to convert unicodes in json string to normal (plain)strings in python如何将json字符串中的unicode转换为python中的普通(普通)字符串
【发布时间】:2016-01-26 11:50:29
【问题描述】:

例子:

s = "[{"course_id": u"1", "course_name": u"Angular", "course_img":       "sas"},
      {"course_id": u"2", "course_name": u"SMAI", "course_img": "ASD"}, 
     ]"

我需要把这个转换成普通的json字符串。如何实现呢?

【问题讨论】:

  • 这甚至不是有效的 Python 语法。这真的是一个字符串吗?你为什么不发布你的实际代码?

标签: python json unicode


【解决方案1】:

如果你有这样的普通 python 列表

s = [{"course_id": u"1", "course_name": u"Angular", "course_img": "sas"},
  {"course_id": u"2", "course_name": u"SMAI", "course_img": "ASD"}, 
 ]

那么你可以使用json 模块

import json

print json.dumps(s)

【讨论】:

  • 你好,我正在使用 Django rest 框架,我可以通过更改任何设置来消除
  • 你在 Django rest 框架中对此有什么问题吗?然后用完整信息提出新问题。始终添加完整信息。我不使用 Django rest 框架,但我希望 rest 框架应该自动转换它。
【解决方案2】:

您的示例不是有效的 Python 字符串,但我假设您拥有的是字典的“字符串化”形式:

d1 = [{"course_id": u"1", "course_name": u"Angular", "course_img": "sas"},
     {"course_id": u"2", "course_name": u"SMAI", "course_img": "ASD"}]
s = str(D)
print(repr(s))

结果:

"[{'course_id': u'1', 'course_name': u'Angular', 'course_img': 'sas'}, {'course_id': u'2', 'course_name': u'SMAI', 'course_img': 'ASD'}]"

如果要将其转换为有效的 json 字符串,可以使用 ast.literal_eval 取回原始字典,并使用 json.dumps 正确序列化:

import ast
d2 = ast.literal_eval(s)
print(d1 == d2) # Did we get original dictionary?

import json
s2 = json.dumps(d2)
print(repr(s2))

结果:

True
'[{"course_id": "1", "course_name": "Angular", "course_img": "sas"}, {"course_id": "2", "course_name": "SMAI", "course_img": "ASD"}]'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 2018-06-08
    • 2021-09-21
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多