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的字符去掉,然后再解析,就可以了。

你可能感兴趣的:(Python中json.loads解析包含\n的字符串会出错)