由于unicode字符,无法在Python中将字符串转换为Json

时间:2015-10-23 17:36:27

标签: python json beautifulsoup web-crawler

我在Python 3.5中有一个String,我想从中创建一个Json对象。但事实证明该字符串包含以下内容:

"saved_search_almost_max_people_i18n":"You are reaching your current limit of saved people searches. \\u003ca href=\\"/mnyfe/subscriptionv2?displayProducts=&family=general&trk=vsrp_ss_upsell\\"\\u003eLearn more >\\u003c/a\\u003e"

这些unicode字符使json.loads函数失败;实际上,如果我尝试在任何在线格式化程序中将字符串格式化为Json,则会出现多个错误。

正如你所看到的,我是一个Python新手,但我一直在寻找很多资源,并没有找到任何解决方案。 顺便说一下,String来自Beautifulsoup操作:

soup = self.loadSoup(URL)
result = soup.find('code', id=TAG_TO_FIND)
rTxt=str(result)
j = json.loads(rTxt)

我看到的第一个错误(如果我更正了这个错误,还会有更多错误):

json.decoder.JSONDecodeError: Invalid \escape: line 1 column 858 (char 857)

谢谢大家。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么您正尝试使用Beautiful Soup解析HTML文档,并从该文档中的特定code元素中提取JSON文本。

如果是这样,以下行是错误的:

rTxt=str(result)

在美丽的汤Tag上调用str()会返回其HTML表示形式。相反,您需要string属性:

rTxt=result.string