You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求技术协助:通过Python解析响应提取ActivationId和ActivationCode作为后续处理变量

Python解析字典提取指定字段值

这很容易实现,分两种情况来处理,取决于你的输出是字符串形式还是已经是Python字典对象:

情况1:输出是带单引号的字符串形式

如果你的输出是像题目里那样的字符串(用单引号包裹的字典格式),可以用ast.literal_eval来安全地将其转换为Python字典,再提取目标字段:

import ast

# 原始输出字符串
response_str = """{ 'ActivationId': '24d8bac5-b849-42b2-b996-ca15fd829826', 'ActivationCode': 'jLu1oMmFGhZ/HQFGPr9P', 'ResponseMetadata': { 'RequestId': '7fc216f9-4c62-4b49-a17d-57c865f439ec', 'HTTPStatusCode': 200, 'HTTPHeaders': { 'server': 'Server', 'date': 'Mon, 30 Aug 2021 09:58:39 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '95', 'connection': 'keep-alive', 'x-amzn-requestid': '7fc216f9-4c62-4b49-a17d-57c865f439ec' }, 'RetryAttempts': 0 } }"""

# 解析字符串为Python字典(用ast.literal_eval比eval更安全)
response_dict = ast.literal_eval(response_str)

# 提取需要的两个值作为变量
id = response_dict['ActivationId']
code = response_dict['ActivationCode']

# 验证结果(后续处理直接用id和code即可)
print(f"id={id}")
print(f"code={code}")

情况2:输出已经是Python字典对象

如果这个输出是直接从AWS SDK(比如boto3)返回的响应,那么它本身就是一个Python字典,不需要解析字符串,直接提取键值对即可:

# 假设这是API返回的字典对象
response_dict = {
    'ActivationId': '24d8bac5-b849-42b2-b996-ca15fd829826',
    'ActivationCode': 'jLu1oMmFGhZ/HQFGPr9P',
    'ResponseMetadata': {
        'RequestId': '7fc216f9-4c62-4b49-a17d-57c865f439ec',
        'HTTPStatusCode': 200,
        'HTTPHeaders': {
            'server': 'Server',
            'date': 'Mon, 30 Aug 2021 09:58:39 GMT',
            'content-type': 'application/x-amz-json-1.1',
            'content-length': '95',
            'connection': 'keep-alive',
            'x-amzn-requestid': '7fc216f9-4c62-4b49-a17d-57c865f439ec'
        },
        'RetryAttempts': 0
    }
}

# 直接提取目标字段
id = response_dict['ActivationId']
code = response_dict['ActivationCode']

# 后续处理使用这两个变量
print(f"id={id}")
print(f"code={code}")

注意事项

  • 推荐使用ast.literal_eval而非eval来解析字符串字典,因为eval会执行任意代码,存在安全风险,而ast.literal_eval仅解析合法的Python字面量,更安全。
  • 如果字段可能不存在,可以用response_dict.get('ActivationId')来避免KeyError,返回None或者指定默认值,比如response_dict.get('ActivationId', 'default_id')。

内容的提问来源于stack exchange,提问作者Pety

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 08:42:44