python脚本参数传递丢失双引号

公司有个python脚本,出现一个问题,参数传递过程中内部的双引号被传丢了,如图我在三个位置分别打印了参数

img

第一次输出,双引号还在

img

第二次输出,双引号也还在

img

第三次输出,双引号的转义字符没了

img

导致执行 echo -e命令的时候写入到文件中双引号直接没了

img

有懂的大腿吗

你仔细看,第二次打印时转义符就已经没了
没了就对了,那个转义符是针对json字符串的,json字符串里面参数由双引号包裹,而str里又出现双引号,肯定要转义
而你已经执行了json.load,已经拿到了参数值,这里就不需要再转义了呀
至于最后连双引号都没了,因为你执行了echo,引号本来就是用来定义字符串的语法
你打印的是字符串本身,字符串的定义不会被打印出来
-=-=-==-=
其实这里你应该反过来理解这些符号到底是怎么一层一层的包上去的
比如最初你只是想在控制台下打印123,那么代码就是echo "123",这里一定要包上引号表明它是个字符串
当你把这个东西继续套进一个字符串里面,那引号本身肯定要转义,就会变成这样"echo \"123\""

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632