[英]error sending an argument with an ampersand character in the value in python?
我在 python 中處理 2 個腳本。 第一個需要向第二個腳本發送一個值或一個參數。 現在的問題是,每當我將值發送到第二個腳本時,第二個腳本都無法獲取我發送的所有參數。 我發送的值是一個 URL,它包含一個 & 符號。 我注意到它一直在降低 & 的第一次出現的值。
例如,讓我們坐下,我需要通過這個:
第二個腳本只會收到這個:
我需要做什么才能獲得正確的值? 還有哪些其他角色有與此相同的問題?
您需要在整個值周圍加上引號,包括 & 號,因為它是一個特殊的 shell 字符。 或者,您可以通過在它前面放置一個反斜杠來逃避它:
http://www.google.com/jfljflfjej\&12345
& 符號向 shell 發出信號,您希望在后台模式下將命令置於該點。
以下任何字符在 shell 中都是特殊的:
\ ' " ` < > | ; <Space> <Tab> <Newline> ( ) [ ] ? # $ ^ & * =
這些需要以相同的方式進行轉義; 使用反斜杠或在值周圍加上引號。
也許現在回答你有點晚了,但我遇到了同樣的問題,我找到了一個簡單的解決方案。
您可以使用函數 replace() 將每個 & 符號替換為 HTML '%26' 中的代碼,如下所示。
url = http://www.google.com/jfljflfjej&12345
print url.replace('&', '%26')
結果:
http://www.google.com/jfljflfjej%2612345
這是編碼的問題。
在 Python 3 中:
import urllib.parse
url = urllib.parse.quote("http://www.google.com/jfljflfjej&12345")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.