Python/Json在数据中转储额外的反斜杠

2024-05-18 10:53:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我的期望不正确吗所需的输出用于此单个字段

"{\"escapeChar\":\"\\\", \"quoteChar\":\"\"\", \"separatorChar\":\",\"}"

输入csv文本

"{""escapeChar"":""\\"", ""quoteChar"":""\"""", ""separatorChar"":"",""}"

代码:

obj_str = json.dumps(table_obj).replace('RS Target Table', 'Table Name').replace('Stage Table', 'input_table')

#Get obj back with replacement  BANG!!
obj = json.loads(obj_str)

print ('after loads, source_serde_params: ',   obj['source_serde_params'])
with open(filename, 'w' ) as write_file:
                    json.dump(obj, write_file,  indent=2)

控制台:

after loads, source_serde_params:  {"escapeChar":"\\", "quoteChar":"\"", "separatorChar":","}

输出文件:

"source_serde_params": "{\"escapeChar\":\"\\\\\", \"quoteChar\":\"\\\"\", \"separatorChar\":\",\"}"

python 3.7.9 windows笔记本电脑


Tags: jsonobjsourcewithtableparamsreplaceafter
1条回答
网友
1楼 · 发布于 2024-05-18 10:53:20

输出是正确的-只是您在一个环境中看到了输出,该环境为您显示数据中的任何实际\,以便它可以重用\字符来表示其他字符(如',",n,t)的转义序列

只需更改查看输出文件的方式即可查看其实际内容。 当您在“控制台”中编写时,您可能会看到交互式输出,它显示字符串的repr,其中以这种方式使用齿隙;只需在编码的json字符串周围放置一个print (...),以查看其实际的、未经扫描的内容

相关问题 更多 >