问题描述
我的期望不正确吗? 所需的输出是针对单个字段
"{\"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\":\"\\\"\",\"}"
蟒蛇 3.7.9 Windows 笔记本电脑
解决方法
Th 输出是正确的 - 只是您在向您展示数据中任何实际 \
的环境中看到输出,以便它可以重用 \
字符来表示转义序列对于其他字符,如 ',",n,t
等...
只需更改您查看输出文件的方式即可查看其实际内容。
当您在“控制台”中看到它时,您可能会看到交互式输出,其中显示了字符串的 repr
,其中以这种方式使用了反冲;只需在编码的 json 字符串周围放置一个 print (...)
即可查看其实际的、未转义的内容。