【发布时间】:2020-07-15 23:44:05
【问题描述】:
我在python中有一个如下的dict
test_dict = {'A': 'apple', 'B': 12345000, 'c': '2020-07-13 03:04:21.752566'}
我需要将 json 输出格式化如下,包括反斜杠和 cmets,int 值不需要反斜杠和 cmets
{
"zz":"zz",
"xx":"x",
"rawData":"{\"A\":\"apple\",\"B\":12345000,\"c\":\"2020-07-13 03:04:21.752566\"}"
}
我已经实现了以下功能
def construct_raw(abc):
start = "\"{"
end = "}"
delimiter = ","
dict_len = len(abc)
cnt = 0
for k, v in abc.items():
cnt = cnt + 1
if type(v) is str:
n = "\\\"" + v + "\\\""
else:
n = str(v)
start = start + "\\\"" + k + "\\\"" + ":" + n
if cnt != dict_len:
start = start + delimiter
start = start + end + "\""
return start
这为 rawData 产生了以下输出
"{\\"A\\":\\"apple\\",\\"B\\":12345000,\\"c\\":\\"2020-07-13 03:04:21.752566\\"}"
但这会导致字符串中出现双反斜杠 如何解决这个问题?
【问题讨论】:
-
为什么不
json.dumps? -
看起来像 JSON ......这是你需要的吗?
-
@juanpa.arrivillaga 原始数据是字符串而不是 json
-
@co2f2e 这到底是什么意思? JSON 是一种基于文本的序列化格式。您展示的是如何将有效的 JSON 字符串(表示该 JSON 对象)序列化为 JSON 字符串。我很确定你只需要
print(json.dumps({'rawData':json.dumps(test_dict)})) -
@juanpa.arrivillaga 问题已解决,谢谢
标签: python python-3.x regex string