Python中json.loads解析包含\n的字符串會出錯


用python中的json.loads解析字符串,失敗了。

【解決過程】

1.調試了半天,終於發現,如果把其中的:

"呵呵加那么多連接啊\n\n這個標准還是不錯的\n\n給大家推薦一個更多的信息平台\n\nwww.hfei4c.cn ",

中的\n去掉,然后json.loads就可以正確解析了。

2.然后就去搜了下,json.loads解析帶\n的字符串會失敗,相關的帖子,找到了

python json.loads error

其給出了解決辦法:

json.loads(s.replace(‘\r\n’, ”));

json.loads(s.replace(‘\r\n’, ‘\\r\\n’));

3.我自己去試了試,結果發現上述代碼沒用。

對應的用這樣的代碼:

dataJsonStr = dataJsonStr.replace("\\n", "");
dataDict = json.loads(dataJsonStr);

才是可以的,即把其中的\n去掉,然后json.loads才可以解析。

而那人給出的辦法,是把真正的\r\n的回車換行的控制字符去掉,卻沒有把\n這兩個字符去掉,因此不可以。

而只有通過\\n表示\和n這兩個字符,去掉,然后才可以。

【總結】

如果字符串中包含\n這樣的字符的話,json.loads解析出錯的話,那么用類似於這樣的代碼:

dataJsonStr = dataJsonStr.replace("\\n", "");

把\n的字符去掉,然后再解析,就可以了。


免責聲明!

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



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