簡體   English   中英

在 python 的值中發送帶有 & 字符的參數時出錯?

[英]error sending an argument with an ampersand character in the value in python?

我在 python 中處理 2 個腳本。 第一個需要向第二個腳本發送一個值或一個參數。 現在的問題是,每當我將值發送到第二個腳本時,第二個腳本都無法獲取我發送的所有參數。 我發送的值是一個 URL,它包含一個 & 符號。 我注意到它一直在降低 & 的第一次出現的值。

例如,讓我們坐下,我需要通過這個:

http://www.google.com/jfljflfjej&12345

第二個腳本只會收到這個:

http://www.google.com/jfljflfjej

我需要做什么才能獲得正確的值? 還有哪些其他角色有與此相同的問題?

您需要在整個值周圍加上引號,包括 & 號,因為它是一個特殊的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM