【发布时间】:2016-03-15 15:22:53
【问题描述】:
我在一个文件中有以下文本:
{"Fn::Base64":{"Fn::Join":["",["#!/bin/bash -ex","\n","echo 'Region name is:'",{"Ref":"AWS::Region"},">>~/user-data.log","\n"]]}}
我正在从文件中读取它并将其写入如下文件:
with open(user_data['file'], "r") as f:
user_data_script = f.read().splitlines()
lc_arguments['user_data_script'] = user_data_script
但结果如下:
{\"Fn::Base64\":{\"Fn::Join\":[\"\",[\"#!/bin/bash -ex\",\"\\n\",\"echo 'Region name is:'\",**{\"Ref\":\"AWS::Region\"}**,\">>~/user-data.log\",\"\\n\"]]}}
注意它是如何将\ 添加到每个" 字符的。我该如何避免这种情况以及为什么要这样做?
【问题讨论】:
-
您如何查看这些斜线?它们可能不会“真正”存在,因为它们会在那里转义引号,以便它们可以在其他引号内
-
另外,看起来您正在阅读
json,为什么不使用json 模块而不是将其视为字符串? -
@EricRenouf 这是来自一个文本文件,所以可以是任何东西(现在是 json 格式),我在一个文件中查看它,我通过以下方式将它写入:lc_arguments['user_data_script'] = user_data_script
-
好的,我认为它们并不真正存在,它们只是以这种方式打印以使字符串中的引号不会终止字符串。不过,您实际上并没有向我们展示任何产生输出的行,所以目前这仍然是我的猜测。
-
@Scooby 你说的“出来”是什么意思?请提供您的问题的Minimal, Complete, and Verifiable Example。
标签: python bash python-2.7 python-3.x