Como obter um valor json específico com regex

ProtractorNewbie

Tenho tentado descobrir como obter o "form:"valor de uma tag html que se pareça com:

window.__webpack_public_path__='https://renderer-assets.helloWorld.com/';
window.__webpack_nonce__='ca0aa826f043cfc50cc24f6ae5a2fb4a';
window.rendererAssets='["https://renderer-assets.helloWorld.com/vendors~attachment~form-container.0ca60599ecb1b55e02bf.js","https://renderer-assets.helloWorld.com/vendors~libphonenumber~submission.7a28f3a3fe6660429a73.js","https://renderer-assets.helloWorld.com/country-data.62e9eca111db492e793d.js","https://renderer-assets.helloWorld.com/form-container.c34f13ff7b2a95addd81.js","https://renderer-assets.helloWorld.com/renderer.c8aaed3fb2c5d344f80d.js","https://renderer-assets.helloWorld.com/submission.a2f19d1069d330fd0866.js","https://renderer-assets.helloWorld.com/vendors~form-container.9853dbb220cd33f30c2f.js"]';
window.rendererData= {
    scriptSrc: 'https://renderer-assets.helloworld.com/renderer.c8aaed3fb2c5d344f80d.js',
    rootDomNode: 'root',
    form: {
        "id":"Z3PvTW",
        "title":"TESTING",
        "theme": {
            "id":"xwizbR",
            "font":"Oswald",
            "name":"Plain Blue (copy)",
            "colors": {
                "question": "#3D3D3D", "answer": "#000000", "button": "#000000", "background": "#FFFFFF"
            }
            ,
            "has_transparent_button":false,
            "visibility":"private"
        }
        ,
        "workspace": {
            "href": "https:\u002F\u002Fapi.helloWorld.com\u002Fworkspaces\u002FnutqqY"
        }
        ,
        "settings": {
            "is_public":true,
            "is_trial":false,
            "language":"en",
            "progress_bar":"proportion",
            "show_progress_bar":true,
            "show_helloWorld_branding":true,
            "meta": {
                "allow_indexing": false
            }
        }
        ,
        "welcome_screens":[ {
            "ref":"a13820db-af60-40eb-823d-86cf0f20299b",
            "title":"TESTING VALUES",
            "properties": {
                "show_button": true, "button_text": "Start"
            }
        }
        ],
        "thankyou_screens":[ {
            "ref":"default_tys",
            "title":"Done! Your information was sent perfectly.",
            "properties": {
                "show_button": false, "share_icons": false
            }
        }
        ],
        "fields":[ {
            "id":"kxWycKljdtBq",
            "title":"FIRST NAME",
            "ref":"27f403f7-8c5b-4e18-b19d-1501e8f137ee",
            "validations": {
                "required": true
            }
            ,
            "type":"short_text"
        },
        {
            "id":"WEXCnZ7EAFjN",
            "title":"LAST NAME",
            "ref":"a6bf6d83-ee37-4870-b6c5-779822290cde",
            "validations": {
                "required": true
            }
            ,
            "type":"short_text"
        }

        ],
        "_links": {
            "display": "https:\u002F\u002Fautosnkr.helloWorld.com\u002Fto\u002FZ3PvTW"
        }
    }
    ,
    trackingInfo: {
        "segmentKey": "9at6spGDYXelHDdz4r0cP73b3wV1f0ri", "accountId": 12587347, "accountLimitName": "Essentials", "userId": 12586030
    }

Meu objetivo aqui é ser capaz de obter todo o formulário: valor em um json.loads, onde mais tarde posso modificá-lo da maneira que desejo, mas antes preciso ser capaz de obter o form:valor e o que tentei fazer é o seguinte:

regexTest = re.compile(r'form:\((.*?)\);', re.DOTALL)
data = regexTest.findall(response.text)

que acabou de voltar []

Minha pergunta é: como posso obter todo o form:valor json em um getAllForm = json.loads(...)?

αԋɱҽԃ αμєяιcαη
match = re.search(r"form: ({(\s+.*){1,}\})", response.text).group(1)
print(match)

Saída:

{
        "id":"Z3PvTW",
        "title":"TESTING",
        "theme": {
            "id":"xwizbR",
            "font":"Oswald",
            "name":"Plain Blue (copy)",
            "colors": {
                "question": "#3D3D3D", "answer": "#000000", "button": "#000000", "background": "#FFFFFF"
            }
            ,
            "has_transparent_button":false,
            "visibility":"private"
        }
        ,
        "workspace": {
            "href": "https://api.helloWorld.com/workspaces/nutqqY"
        }
        ,
        "settings": {
            "is_public":true,
            "is_trial":false,
            "language":"en",
            "progress_bar":"proportion",
            "show_progress_bar":true,
            "show_helloWorld_branding":true,
            "meta": {
                "allow_indexing": false
            }
        }
        ,
        "welcome_screens":[ {
            "ref":"a13820db-af60-40eb-823d-86cf0f20299b",
            "title":"TESTING VALUES",
            "properties": {
                "show_button": true, "button_text": "Start"
            }
        }
        ],
        "thankyou_screens":[ {
            "ref":"default_tys",
            "title":"Done! Your information was sent perfectly.",
            "properties": {
                "show_button": false, "share_icons": false
            }
        }
        ],
        "fields":[ {
            "id":"kxWycKljdtBq",
            "title":"FIRST NAME",
            "ref":"27f403f7-8c5b-4e18-b19d-1501e8f137ee",
            "validations": {
                "required": true
            }
            ,
            "type":"short_text"
        },
        {
            "id":"WEXCnZ7EAFjN",
            "title":"LAST NAME",
            "ref":"a6bf6d83-ee37-4870-b6c5-779822290cde",
            "validations": {
                "required": true
            }
            ,
            "type":"short_text"
        }

        ],
        "_links": {
            "display": "https://autosnkr.helloWorld.com/to/Z3PvTW"
        }
    }
    ,
    trackingInfo: {
        "segmentKey": "9at6spGDYXelHDdz4r0cP73b3wV1f0ri", "accountId": 12587347, "accountLimitName": "Essentials", "userId": 12586030
    }

Agora, sobre como carregar seu JSONPdicionário em um JSONdicionário válido .

Verifique o keyque é trackingInfo, na verdade está faltando trackingInfoser como "trackingInfo". Portanto, você precisa citá-lo, pois isso contará como uma duplicata. Por favor, verifique essa resposta

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como obter um valor específico de json com tags semelhantes com T-SQL

Como obter um valor específico de um objeto JSON

Como obter um valor específico da API json com python

Como obter índices de um tapete com valor específico?

Como cortar a matriz JSON para obter um valor específico

Como obter um valor específico do array JSON MySQL

Como obter um valor específico de json

Como obter um valor específico de JSON

Como cortar a matriz JSON para obter um valor específico

Como obter um valor específico de Json usando SelectToken

Como encontro um valor JSON com um ID específico?

Usando regex obter um valor específico

Como obter um valor específico com getElementsByTagName com <td> com overflow: hidden no VBA?

React Native: como recuperar dados de um estado com uma matriz json aninhada e mapear esse estado para obter um valor específico com um determinado id

Como obter as primeiras n linhas de um arquivo csv com um valor de coluna específico?

Como obter as primeiras n linhas de um arquivo csv com um valor de coluna específico?

Como obter um valor de string específico usando REGEX em PHP

Como obter uma lista de colunas do dataframe que começam com um valor específico?

Como posso obter um valor de campo específico com filtro aninhado de matriz no MongoDB?

Como obter nós que correspondem a várias tags com um valor específico no Overpass QL

Como obter nós que correspondem a várias tags com um valor específico no Overpass QL

Como obter documentos que não contenham objeto com valor específico dentro de um array

precisa obter um registro subsequente com um valor específico

Como obter um valor específico de um dicionário

Como obter um conjunto específico de uma matriz com objetos json com angular

Como obter um valor de string específico de uma resposta json do firebase

Como obter um valor json específico ao repetir o ng duas vezes?

como obter um valor de objeto específico dentro de jquery da string json

Como obter um valor específico da opção select - json object