gpt4 book ai didi

python - 在python中获取JSON var值

转载 作者:行者123 更新时间:2023-12-01 05:24:46 30 4
gpt4 key购买 nike

在Python中,提取包含JavaScript变量定义的行并获取分配给它的值(我使用BeautifulSoup从网页中抓取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值(因为我想在之后将其转换为Pythonlist) ,

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

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

最佳答案

使用str.index查找 json 对象开始的位置和 re.sub (从 "a": "123" 生成 a:"123" )与 str.replace (将单引号更改为双引号: ['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}

关于python - 在python中获取JSON var值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21612967/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com