亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么雙反斜杠在 python 字典中不起作用

為什么雙反斜杠在 python 字典中不起作用

紅糖糍粑 2023-04-18 10:54:09
我有一個 python 字典,其中包含這樣的連接詳細信息:x = {  'myserver' : {    'DSN': 'servername',    'DATABASE': 'mydatabase',    'UID': 'myusername',  'PWD': 'my\\password'    }}我期望值PWD是my\password但我得到my\\password了。作為一個獨立的字符串,即pwd = 'my\\password'# returns my\password所以我嘗試了這個(但仍然不起作用):pwd = 'my\\password'x = {  'myserver' : {    'DSN': 'servername',    'DATABASE': 'mydatabase',    'UID': 'myusername',  'PWD': pwd    }}還嘗試了四個反斜杠\\\\,只嘗試了一個反斜杠\(出錯),嘗試r在字符串值前面加上它們的組合,仍然沒有...本質上期望字典的輸出顯示/保持/指向my\password而不是my\\password
查看完整描述

2 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

這個“問題”本質上取決于您如何'PWD'在代碼中調用 的值。就此而言,簡單地打印整個字典不會處理反斜杠或 r 字符串,或任何你用來轉義反斜杠字符的東西。這就是為什么在調用整個字典時會得到 2 個反斜杠的原因。注意 - 即使將其設為 r 字符串也不會改變這一點,因為 r 字符串會經過并在每個反斜杠后面添加一個額外的反斜杠以自動將其轉義。

但是,當您特別調用它時x['myserver']['PWD'],即會處理該字符串中的轉義符,因為它被調用、處理并因此作為單個字符串處理,并且字符串中的所有轉義符都將被處理。

總而言之,如果你調用整個字典,甚至是嵌套的內部字典,字符串將不會被處理,所以\\會出現在你想要的任何地方\要獲得輸出my\password,請專門調用該值,例如x['myserver']['PWD'].


查看完整回答
反對 回復 2023-04-18
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

你如何驗證它不起作用?使用 print 函數,您可以看到它完全符合您的預期:


x = {

  'myserver' : {

    'DSN': 'servername',

    'DATABASE': 'mydatabase',

    'UID': 'myusername',

  'PWD': 'my\\password'

    }

}


print(x)


print(x['myserver']['PWD'])

輸出:


{'myserver': {'DSN': 'servername', 'DATABASE': 'mydatabase', 'UID': 'myusername', 'PWD': 'my\\password'}}


my\password


查看完整回答
反對 回復 2023-04-18
  • 2 回答
  • 0 關注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號