[英]Python Error: Unexpected character after line continuation character
我正在嘗試創建一個數據框來存儲reddit數據:
topics_dict = { "title":[],\
"score":[],\
"id":[], "url":[],\ -> Error
"comms_num": [],\
"created": [],\
"body":[]}
在行繼續反斜杠和換行符之間包含任何內容是非法的。 1 (有關詳細信息,請參見顯式行連接 。)
通常,此問題非常明顯:
>>> 'abc' \stuff
'abc' \stuff
^
SyntaxError: unexpected character after line continuation character
…但是,即使您擁有的全部都是空白,即使非法也很難看:
>>> 'abc' \
'abc' \
^
SyntaxError: unexpected character after line continuation character
如果在同一源中混合使用Windows \\r\\n
和Unix \\n
換行符,情況可能更糟。 然后,您可以在反斜杠后面緊跟一個\\r\\n
,看起來很不錯-但是\\r
被視為非法空格,而不是換行符的一部分,因為它將腳本視為\\n
終止。 2
一位體面的編輯人員將使這些問題難以創建,易於發現或同時出現。 出於這些目的,除Notepad和TextEdit之外,幾乎所有其他編輯器都被認為是“不錯的”,包括針對每個平台的許多免費工具。
解決方案是刪除\\
之后的所有空格。
或者,更好的是,避免在不需要時使用反斜杠連續(因為您不在這里),因為{}
, []
或()
任何表達式都會自動繼續,而無需反斜杠。 (有關詳細信息,請參見隱式行連接 ,但是它幾乎總是可以按您期望的那樣工作。)
從技術上講,我不認為反斜杠后面跟換行符不是換行符。 因此,實際錯誤只是反斜杠本身就是無效的令牌。 但是,如果是這樣,令牌生成器通過在此處提供更易於理解的錯誤消息而變得很好,所以我們不要抱怨……
2.我相信從2.6左右或3.0左右開始,這個說法可能不再正確。 請參閱物理線 。 但是,使用一致的結尾比希望Python正確猜出您要做什么的更好。
為什么不使用:
topics_dict = { "title":[],
"score":[],
"id":[],
"url":[],
"comms_num": [],
"created": [],
"body":[]}
並刪除\\
它的作用完全相同。
這對於字典是完全有效的,並且不受字符串等新行的影響(只要縮進正確即可)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.