python跳过'\n';在替换方法中

python跳过'\n';在替换方法中,python,replace,newline,Python,Replace,Newline,下面是json,这是我读取数据的地方-> ==================================================================================================================================== import re; import sys; import json; loc_file=str(sys.argv[1]) ; open_json=open(loc_file); data=

下面是json,这是我读取数据的地方->

====================================================================================================================================

import re;
import sys;
import json;
loc_file=str(sys.argv[1])  ;
open_json=open(loc_file);
data=json.load(open_json);
list1=data[0].get('statements');
json_input_string="";
json_input_string=str(list1);
json_input_string=json_input_string.replace(r"Text ' ' followed by text",r"Text '\n'"); # This replace works fine but the replace below fails for '\n' 
f = open("Text.txt","w");
m=""
for c in list1:  
    #print "\n\n"+c
    m=str(c).replace(r"Text ' '",r"Text '\n'");  # Here it fails (does not preserve 'n')
    f.write(m+";\n")
有两种可能的事情,任何一种都可以做到 可能的解决方案1): 如果replace方法在循环内有效 我想在两点换一个 例如,使用原始字符串表示法的replace函数适用于 上述变量
json\u input\u string
,但当 我尝试在
list1
的循环中这样做

(列表1包含unicode格式的数据,如[u'设置变量文本' '',表']中的u'表达式文本'],而且大多数python 当我需要保留
'\n'
时,我迄今为止尝试过的写函数都失败了 在替换字符串中。) 或 可能的解决方案2) 如果json_输入_字符串可以提供所需格式的数据 当我打印json_input_string时,即使其类型为'str',它也会给出如下输出:

有些是单引号,有些是双引号。我想皈依 将该字符串转换为不带单引号/双引号的输出,如和 写入文件

m=str(c)。替换(…)
新字符串位于
m
,而不是
c
。Python字符串是不可变的

谢谢大家的帮助。幸运的是我得到了答案。我是 思考,因为我没有将“\n”视为文本,所以它不在那里,而是它 只是换到一个新行,所以如果我只是从

此外,还需要通过将替换值指定给变量,将此替换保持在循环中

很好,谢谢你的努力


您是否知道脚本的最后一行再次打印
c
,而不是保存
replace
结果的
m
。您显示的
list1
的唯一示例很可能是无意中使用的,
'\n'
是使用原始文字禁用的换行符转义序列。请给我们输入数据、操作代码、生成结果以及您期望的内容的明确值(尝试使用
repr
)。嗨,yann,我已更新了问题,以包括所有细节,直到看不到为止。单词
Text
不在数据中出现,因此两个替换操作都不会产生任何效果。我还不明白为什么你的文本在格式奇怪的引号块中,代码中有分号。对不起,这是一个打字错误。我已经在代码中更新了它
import re;
import sys;
import json;
loc_file=str(sys.argv[1])  ;
open_json=open(loc_file);
data=json.load(open_json);
list1=data[0].get('statements');
json_input_string="";
json_input_string=str(list1);
json_input_string=json_input_string.replace(r"Text ' ' followed by text",r"Text '\n'"); # This replace works fine but the replace below fails for '\n' 
f = open("Text.txt","w");
m=""
for c in list1:  
    #print "\n\n"+c
    m=str(c).replace(r"Text ' '",r"Text '\n'");  # Here it fails (does not preserve 'n')
    f.write(m+";\n")
json_input_string=[u'SET X=ABC', u'USE @{Domain}', u"Create table DEF"] 
SET X=ABC;
USE @{Domain};
Create table DEF
replace("LINES TERMINATED BY ' '","LINES TERMINATED BY '\\n'"); 
to 
replace("LINES TERMINATED BY '\n'","LINES TERMINATED BY '\\n'");