[Error]EOL while scanning string literal


有一個經常性的工作項目。需要一天的一些表數據到外部接口,但最近總是異常。今天檢查的原因。


第一本地和測試環境中測試程序是沒有問題,有網絡環境只會在日志中拋出一個異常。產生主要的例外是推定異常數據。

,由不得而知,於是添加了程序的輸出日志和數據打印,通過幾次的執行定位了錯誤發生的函數和數據記錄。


異常是這種:

EOL while scanning string literal: <string>, line 1, pos 7


google一下。這個異常造成的原因是字符串,引號沒有成對出現,也就是類似以下的情況

str('1)
Traceback (most recent call last):
  File "<string>", line 1, in <fragment>
EOL while scanning string literal: <string>, line 1, pos 7

想一想程序中是沒有這種問題,那問題就來自數據庫中的記錄了,經過排查發現數據庫中有個字段最大長度是65k,而存入的數據大於65k,整個字符串就被截斷了。


整個字符串不是一般的字符串,而是一個字典的字符形式,類似 str(dictA)

dicA某個key或者是value正好被截斷 比如從{“name”:“orangleiu”}  截斷為 {"name":"orang 

所以在取出來的轉換成str類型的時候就報錯了。


加上異常處理和字段增長長度攻克了問題。


本文出自 orangleliu筆記本 博客,請務必保留此出處http://blog.csdn.net/orangleliu/article/details/38943749


版權聲明:本文orangleliu(http://blog.csdn.net/orangleliu/)原創文章,文章轉載申報。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM