預先感謝您爲您的幫助......Python3,「 n」和「‘‘的允許用戶輸入的字符,但是’\ n‘和’\替換’」
我編碼的將使用JSON響應的API。我在Python 3.5.1中編寫代碼。我允許用戶輸入他們希望提交給Slack聊天的預定義消息,而Slack語法使用\ n代替換行符,因此我的應用需要允許用戶在消息中使用'\ n'來格式化他們的消息,但'\ n'自然會搞亂我的Python,因爲它只想在句子中換一行,而不是打印出Slack需要查看的\ n。
我想我會做的只是.replace('\ n','\\ n'),所以JSON仍然會得到預期的'\ n',而不會打擾Python。這工作正常,但我也需要檢查用戶的消息「」的實例,並用「\\」替換它,所以它不會妨礙我的數據庫的SQL語句。
我想我會製作一本字典和一種方法來檢查某些字符的實例,並將它們全部替換爲它們的相應值。
這是我到目前爲止有:
def replace_all(strIn):
keywords = {"'": "\\'", "\n": "\\n"}
for a, b in keywords.items():
strOut = strIn.replace(a, b)
return strOut
爲了測試這個: 〜應變= 「你\ '重新\ ngreat在陳\' L \ nsurfing不要\'你不知道」
當我運行我的方法時,我正確地抓住了「'」:「\\'」,但「\ n」:「\\ n」被忽略。如果我將它們作爲獨立的strIn.replace(「\ n」:「\\ n」)和strIn.replace(「'」:「\\'」)執行。我在做什麼錯我的方法?
再次感謝您的幫助, Vaylain
更新時間:
如果我做了以下這不正是我想要的但它是非常詳細,而不是非常符合Python:
def checkString(self, strIn):
keywords1 = {"'": "\\'"}
keywords2 = {"\n": "\\n"}
for a, b in keywords1.items():
pass1 = strIn.replace(a, b)
for a, b in keywords2.items():
strOut = pass1.replace(a, b)
return strOut
任何想法如何將兩個字符串合併爲一個,並獲得該方法的工作,而不是2通過傳入的字符串?
「...所以JSON仍然會得到......」什麼? JSON需要獲得什麼?你編碼它,它完成。 –