在python中获取JSON var值

2024-09-30 05:24:05 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,提取包含JavaScript变量定义的行并获得分配给它的值的最简单的方法是什么(我使用beauthulsoup从网页中抓取JavaScript),它包含在大括号中(例如{,}),请记住,变量本身可能包含嵌套的大括号的任何级别。在

例如,使用输入

var myVar  =  { "a": "123","b":"345", "c": {"c1":20,"c2":"c123", "c3": {"c3_1": {"c3_1_1":"12"}}}, "d":21, "e":["1","2"]}

我想得到完整的myVar值作为string(因为我想在之后将其转换为Python list

^{pr2}$

任何帮助都会很棒,因为我是Python新手。在


Tags: 方法网页string定义var大括号javascript级别
2条回答

使用str.index查找json对象的起始位置,re.sub(将"a": "123"a:"123")与{}(此处将单引号改为双引号:['1','2'])修复json:

import json
import re

var = '''var myVar  =  { a: "123",b:"345", c: {c1:20,c2:"c123", c3: {c3_1: {c3_1_1:"12"}}}, d:21, e:['1','2']}'''
v = var[var.index('{'):]
v = re.sub(r'(\w*):', r'"\1":', v)
v = v.replace('\'', '\"')

>>> v
'{ "a": "123","b":"345", "c": {"c1":20,"c2":"c123", "c3": {"c3_1": {"c3_1_1":"12"}}}, "d":21, "e":["1","2"]}'
>>> json.loads(v)
{u'a': u'123', u'c': {u'c3': {u'c3_1': {u'c3_1_1': u'12'}}, u'c2': u'c123', u'c1': 20}, u'b': u'345', u'e': [u'1', u'2'], u'd': 21}
import json
a = json.dumps(myVar)

在本例中,变量a的类型是string。你可以随意操纵它。在

相关问题 更多 >

    热门问题