为什么在python中打印有{的代码不能正常工作

为什么在python中打印有{的代码不能正常工作,python,dictionary,Python,Dictionary,我有一本字典在下面: 事件={ “body json”:{}, “参数”:{ “路径”:{ “匹配短语”:“术语” }, “查询字符串”:{ “dataproduct.keyword”:“运行状况” }, “标题”:{ “接受”:“应用程序/json” } }, “资源路径”:“/{matchphrase}” } 我想访问上述事件字典键和值,并按如下方式构建一个新字典: {“查询”:{“术语”:{“dataproduct.keyword”:“health”}} 以下是我尝试的代码: a=eve

我有一本字典在下面:

事件={
“body json”:{},
“参数”:{
“路径”:{
“匹配短语”:“术语”
},
“查询字符串”:{
“dataproduct.keyword”:“运行状况”
},
“标题”:{
“接受”:“应用程序/json”
}
},
“资源路径”:“/{matchphrase}”
}
我想访问上述
事件
字典键和值,并按如下方式构建一个新字典:

{“查询”:{“术语”:{“dataproduct.keyword”:“health”}}

以下是我尝试的代码:

a=event['params']['path']['matchphrase']#term
b=list(事件['params']['querystring'].keys())[0]#dataproduct.keyword
c=list(事件['params']['querystring'].values())[0]#运行状况
body=f“{query:{{a}:{{b}:{c}}”
印刷品(正文)
我遗漏了什么吗?

这应该可以:

body = {"query":{str(a):{str(b):str(c)}}}
print(body)
这应该起作用:

body = {"query":{str(a):{str(b):str(c)}}}
print(body)
逃跑是错误的

请尝试以下方法:

body = f'{{"query": {{{a!r}: {{{b!r}: {c!r}}}}}}}'
我还添加了
!r
,它将返回对象的真实表示形式(
repr
)(因此不需要人为添加引号)。

转义错误

请尝试以下方法:

body = f'{{"query": {{{a!r}: {{{b!r}: {c!r}}}}}}}'

我还添加了
!r
,它将返回对象的真实表示形式(
repr
)(因此您不需要人为添加引号)。

您可以创建一个字典,然后使用
json.dumps
获取它的字符串版本

import json
    
event = {
    "body-json": {},
    "params": {
        "path": {"matchphrase": "term"},
        "querystring": {"dataproduct.keyword": "health"},
        "header": {"Accept": "application/json"},
    },
    "resource-path": {"matchphrase}"},
}
    
a = event["params"]["path"]["matchphrase"]  # term
b = list(event["params"]["querystring"].keys())[0]  # dataproduct.keyword
c = list(event["params"]["querystring"].values())[0]  # health
    
result = {"query": {a: {b: c}}}
    
print(json.dumps(result))

您可以创建一个字典,然后使用
json.dumps
获取它的字符串版本

import json
    
event = {
    "body-json": {},
    "params": {
        "path": {"matchphrase": "term"},
        "querystring": {"dataproduct.keyword": "health"},
        "header": {"Accept": "application/json"},
    },
    "resource-path": {"matchphrase}"},
}
    
a = event["params"]["path"]["matchphrase"]  # term
b = list(event["params"]["querystring"].keys())[0]  # dataproduct.keyword
c = list(event["params"]["querystring"].values())[0]  # health
    
result = {"query": {a: {b: c}}}
    
print(json.dumps(result))

body=f'{“query”:{{{a}:{{{b}:{c}}}}
body=f'{“query”:{{{a}:{{b}:{c}}}你能回答下面的问题吗@aysh我没有使用dynamodb和弹性搜索的经验。你能回答下面的问题吗@aysh我没有使用dynamodb和弹性搜索的经验。