我需要将bs4.element.NavigableString
(来自美丽的汤:http://www.crummy.com/software/BeautifulSoup/bs4/doc/#navigablestring)转换为json字符串。
我正在使用漂亮的汤来刮,而且我正在使用看起来,就像返回的json对象一样,看起来如下(没有漂亮的格式):
my_object = {"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
我尝试使用普通的json方法搜索my_object
,但它不起作用,并试图用漂亮的汤方法搜索它。我还搜索了如何将bs4.element.NavigableString
转换为json。
感谢您的帮助!
答案 0 :(得分:1)
那个字符串不是有效的JSON。 部分是有效的JSON。
特别是,它是一行JavaScript代码,用于分配恰好被编写为my_object
变量的有效JSON的JavaScript文字。
如果要解析JSON,则必须将其与语句的其余部分分开。例如:
s = '''my_object = {"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}'''
jsvar, _, jsvalue = s.partition('=')
value = json.loads(jsvalue)