Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x '\r\n';从配置文件读取与python';s解释或'\r\n';_Python 3.x - Fatal编程技术网

Python 3.x '\r\n';从配置文件读取与python';s解释或'\r\n';

Python 3.x '\r\n';从配置文件读取与python';s解释或'\r\n';,python-3.x,Python 3.x,我正在尝试使用.json配置文件来指定如何写入CSV 我的json文件中的CSV dict如下所示: "CSV": { "Delimiter": ",", "Quotechar": "\"", "Quoting": "csv.QUOTE_MINIMAL", "LineTerminator": "\\r\\n" }, 我想在csv.Dictwriter语句中使用“\r\n”作为行终止符字段: writer = csv.Dic

我正在尝试使用.json配置文件来指定如何写入CSV

我的json文件中的CSV dict如下所示:

"CSV": {
        "Delimiter": ",",
        "Quotechar": "\"",
        "Quoting": "csv.QUOTE_MINIMAL",
        "LineTerminator": "\\r\\n"
    },
我想在csv.Dictwriter语句中使用“\r\n”作为行终止符字段:

writer = csv.DictWriter(output, fieldnames=search_results[0].keys(), delimiter=config['CSV']['Delimiter'],
                            quotechar=config['CSV']['Quotechar'], quoting=quoting, lineterminator=config['CSV']['LineTerminator'])
问题是,当我提取LineTerminator字段时,它不等同于Python对“\r\n”的解释,并且我无法正确生成CSV:

a= config['CSV']['LineTerminator']
    print(a)
    print(repr(a))
    print(repr('\r\n'))
 if '\r\n' == a:
        print('Equivalent')

我尝试过使用replace()方法,但没有效果

由于双反斜杠表示文字反斜杠,
“\\r\\n”
字面意思是一个反斜杠,后跟一个字母
r
,后跟另一个反斜杠,后跟一个字母
n

您应该在JSON配置文件中使用
“\r\n”
表示回车符,后跟换行符:

"LineTerminator": "\r\n"

你是如何尝试更换的
a=a.replace('\\r','\r')
(对于
\n
)也应该可以。由于转义字符,我尝试执行a.replace('\\\','\\')。我试过你的方法,它成功了!非常感谢你!我想知道为什么你不能替换转义字符。任何细节?JSON字符串中不允许使用换行符,这就是为什么必须使用转义序列
“\n”
来表示换行符的原因。这在更新配置文件时也有效。我的印象是,我必须使用反斜杠来转义JSON文件(\+\r)中的反斜杠;然而,我一定错了。谢谢你的帮助
"LineTerminator": "\r\n"