如何将json字符串中的unicodes转换为python中的普通(普通)字符串

时间:2016-01-26 11:50:30

标签: python json unicode

示例:

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

我需要将其转换为普通的json字符串。如何实现这一目标?

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

你的示例不是有效的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"}]'