我正在向一个REST API发布数据,作为一个响应,我收到的数据是一个json响应。这个响应有一个unicode字符。 我尝试了很多方法来删除json数据中的unicode字符,但没有任何效果:(在删除unicode字符后,我正在验证模式。 以下是我的代码片段。
import json
import logging
from jsonschema import validate
if __name__ == '__main__':
schema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"SOURCE": {
"type": "string"
"TIMESTAMP": {
"type": "string"
"TAGERRORS": {
"type": "array",
"items": [
"type": "object",
"properties": {
"TAGNAME": {
"type": "string"
"ERROR": {
"type": "string"
"required": [
"TAGNAME",
"ERROR"
"required": [
"SOURCE",
"TIMESTAMP",
"TAGERRORS"
response_dict ='"{\\u000d\\u000a \\"SOURCE\\": \\"APPDEV\\",\\u000d\\u000a \\"TIMESTAMP\\": \\"2022-04-19 12:29:27\\",\\u000d\\u000a \\"TAGERRORS\\": []\\u000d\\u000a}"'
response_dict = response_dict.replace("\\u000d\\u000a\\s*", "")
print(response_dict)
my_json = json.loads(response_dict)
# validate(instance=my_json, schema=schema)
# print(my_json)
替换代码1】不工作,并给出以下结果。
"{\u000d\u000a \"SOURCE\": \"APPDEV\",\u000d\u000a \"TIMESTAMP\": \"2022-04-19 12:29:27\",\u000d\u000a \"TAGERRORS\": []\u000d\u000a}"
另外,我试着用下面的regex来删除unicode字符,但在模式验证时失败了。
import re
def removeunicode(text):
text = re.sub(r'\\[u]\S\S\S\S[s]', "", text)
text = re.sub(r'\\[u]\S\S\S\S', "", text)
return text
my_json = json.loads(removeunicode(response_dict))
请你帮助解决这个问题。谢谢。