【发布时间】:2019-07-02 13:31:24
【问题描述】:
我从文件中获取了一些数据,但经过一些处理后,Python 转义了反斜杠,这是不可取的行为。
Windows 10 上的 Python 3
line = "URL ABC \/A\/B\/C\/D" #line of fetched file
tokens = line.split('\t') # tokens = ['URL', 'ABC', '\\/A\\/B\\/C\\/D']
问题不是 Python 中字符串的表示。问题是我需要将输出写入文件,所以当我尝试将tokens[2] 写入文件时,写入的是\\/A\\/B\\/C\\/D 而不是\/A\/B\/C\/D。这是错误的输出。
【问题讨论】:
-
你是如何将它写入文件的?可以发minimal reproducible example吗?
-
也许这会回答你的问题:splitting string without escaping
-
Python 仅在您打印字符串的表示形式时显示双反斜杠,它们不在字符串本身中,不应写入文件。你需要展示你是如何写入文件的,以及为什么你认为双反斜杠在那里。
-
实际上,我有一个字典,我保存令牌的地方,像这样:
pdict[tokens[1]] = tokens[2],然后我创建一个 jsonoutJson = json.dumps(pdict, indent=4),然后写入文件:outfile.write(outJson) -
反斜杠总是在 json 文件中转义。它是 json 规范的一部分。
标签: python python-3.x string escaping