有一個經常性的工作項目。需要一天的一些表數據到外部接口,但最近總是異常。今天檢查的原因。
第一本地和測試環境中測試程序是沒有問題,有網絡環境只會在日志中拋出一個異常。產生主要的例外是推定異常數據。
,由不得而知,於是添加了程序的輸出日志和數據打印,通過幾次的執行定位了錯誤發生的函數和數據記錄。
異常是這種:
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/)原創文章,文章轉載申報。
