用python中的json.loads解析字符串,失敗了。
【解決過程】
1.調試了半天,終於發現,如果把其中的:
"呵呵加那么多連接啊\n\n這個標准還是不錯的\n\n給大家推薦一個更多的信息平台\n\nwww.hfei4c.cn ",
中的\n去掉,然后json.loads就可以正確解析了。
2.然后就去搜了下,json.loads解析帶\n的字符串會失敗,相關的帖子,找到了
其給出了解決辦法:
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的字符去掉,然后再解析,就可以了。