2 回答

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
這個(gè)“問題”本質(zhì)上取決于您如何'PWD'
在代碼中調(diào)用 的值。就此而言,簡單地打印整個(gè)字典不會處理反斜杠或 r 字符串,或任何你用來轉(zhuǎn)義反斜杠字符的東西。這就是為什么在調(diào)用整個(gè)字典時(shí)會得到 2 個(gè)反斜杠的原因。注意 - 即使將其設(shè)為 r 字符串也不會改變這一點(diǎn),因?yàn)?r 字符串會經(jīng)過并在每個(gè)反斜杠后面添加一個(gè)額外的反斜杠以自動(dòng)將其轉(zhuǎn)義。
但是,當(dāng)您特別調(diào)用它時(shí)x['myserver']['PWD']
,即會處理該字符串中的轉(zhuǎn)義符,因?yàn)樗徽{(diào)用、處理并因此作為單個(gè)字符串處理,并且字符串中的所有轉(zhuǎn)義符都將被處理。
總而言之,如果你調(diào)用整個(gè)字典,甚至是嵌套的內(nèi)部字典,字符串將不會被處理,所以\\
會出現(xiàn)在你想要的任何地方\
。要獲得輸出my\password
,請專門調(diào)用該值,例如x['myserver']['PWD']
.

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
你如何驗(yàn)證它不起作用?使用 print 函數(shù),您可以看到它完全符合您的預(yù)期:
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
添加回答
舉報(bào)