Json.loads завершается с ошибкой, если одно из полей является строкой JSON.Python

Программы на Python
Ответить
Anonymous
 Json.loads завершается с ошибкой, если одно из полей является строкой JSON.

Сообщение Anonymous »

Я пытаюсь записать строку JSON, содержащую политику AWS Firewall Manager, в файл JSON. Строка JSON выглядит следующим образом:

Код: Выделить всё

{
"PolicyName": "ExampleWAFPolicy",
"RemediationEnabled": true,
"ResourceTags": [

{
"Key": "Environment",
"Value": "Production"
},

{
"Key": "Application",
"Value": "WebApp"
}

],
"SecurityServicePolicyData": {
"Type": "WAFV2",
"ManagedServiceData": '{"type": "WAFV2", "preProcessRuleGroups": [{"managedRuleGroupIdentifier": {"vendorName": "AWS", "managedRuleGroupName": "AWSManagedRulesCommonRuleSet"}, "ruleGroupType": "ManagedRuleGroup", "overrideAction": {"type": "NONE"}, "ruleActionOverrides": [{"name": "SizeRestrictions_QUERYSTRING", "actionToUse": {"count": {}}}, {"name": "NoUserAgent_HEADER", "actionToUse": {"block": {}}}]}, {"ruleGroupArn": "arn:aws:wafv2:us-east-1:xxxx:regional/rulegroup/Test_RuleGroup/xxxxxxx", "ruleGroupType": "RuleGroup", "overrideAction": {"type": "COUNT"}, "ruleActionOverrides": [{"name": "TestRule", "actionToUse": {"count": {}}}]}], "postProcessRuleGroups": [{"managedRuleGroupIdentifier": {"vendorName": "AWS", "managedRuleGroupName": "AWSManagedRulesAmazonIpReputationList"}, "ruleGroupType": "ManagedRuleGroup", "overrideAction": {"type": "NONE"}, "ruleActionOverrides": [{"name": "AWSManagedIPReputationList", "actionToUse": {"block": {}}}]}], "defaultAction": {"type": "ALLOW"}, "loggingConfiguration": {"logDestinationConfigs": ["arn:aws:s3:::test-logs-bucket-12345"], "redactedFields": []}, "webACLSource": "DEFAULT"}',
"ResourceType": "AWS::ElasticLoadBalancingV2::LoadBalancer"
},
"ExcludeResourceTags": false,
"IncludeMap": {
"ACCOUNT": [

]
},
"ResourceTagLogicalOperator": "AND"
}
Здесь поле ManagedServiceData представляет собой строку, содержащую JSON.
Когда я пытаюсь выполнить json.loads, я получаю следующую ошибку:

raise JSONDecodeError("Expecting value", s, err.value) from None

Как мне успешно записать это в JSON-файл? Я также должен иметь возможность получить его из файла JSON, чтобы использовать его для вызовов API менеджера брандмауэра.

Подробнее здесь: https://stackoverflow.com/questions/798 ... son-string
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»