Python 如何转换字典列表?
我有一个列表,我想把它转换成json。但我得到了以下错误:Python 如何转换字典列表?,python,json,Python,Json,我有一个列表,我想把它转换成json。但我得到了以下错误: trackerror:list indices must be integers or slices, not str 及 可能是什么 观察: list indices must be integers or slices, not str 它是在这一行中生成的:url=variables[“url”] 我有: event= [[{'operacion': 'generar','url':'xxxxxxxx', 'items':
trackerror:list indices must be integers or slices, not str
及
可能是什么
观察:
list indices must be integers or slices, not str
它是在这一行中生成的:url=variables[“url”]
我有:
event=
[[{'operacion': 'generar','url':'xxxxxxxx', 'items': [{'unidad': 'un', codigo'001'}]
}]]
我需要(json):
代码:
def lambda_处理程序(事件、上下文):
payload=json.dumps(事件,缩进=4)
variables=json.loads(有效负载)
url=variables[“url”]---------------->>>>我这里也有一个错误。这应该可以:
event=[[{'operacion': 'generar','url':'xxxxxxxx', 'items': [{'unidad': 'un', 'codigo':'001'}]}]]
json.dumps(event[0][0])
# '{"operacion": "generar", "url": "xxxxxxxx", "items": [{"unidad": "un", "codigo": "001"}]}'
注意:您的字典键codigo
格式不正确。如果这不是一个简单的打字错误时,使这篇文章,你将需要修复这之前,任何处理可以完成。然而,由于Python会抛出一个错误,我猜这只是你文章中的一个格式错误
您的事件列表太深了一层,没有任何意义。根据所需的输出描述,您可以执行以下操作:
事件=[
[
{'operacion':'generar','url':'xxxxxxxx','items':[
{'unidad':'un','codigo':'001'}
]
}
]
]
extractedEvents=[]
对于事件中的e:
extractedEvents.append(e[0])
打印(提取事件)
如果您花时间格式化原始源代码(类似于我所做的),您将更容易看到您正在处理的内容
通过使用e[0]
遍历冗余列表索引,我们将对象展平一级,正如您所示
您所要做的就是从嵌套列表中提取dict。这是事件[0][0]
,我相信。你能分享更多关于你的程序上下文的信息吗?嗨,我试过了,但它不起作用。payload=json.dumps(event,indent=4)你需要像@suppressionlayer那样使用事件[0][0],或者如果你期望发生多个事件,就使用像我这样的循环。另外,您的codigo
词典条目在原始postHi中有格式错误,感谢您的回答,如果是编写错误,json对它来说非常重要。现在字典看起来更小了,但当我把它传递给JSON时。现在:事件=[{'operation':'generate','url':'xxxxxxxx','items':[{'unit':'a','code':'001'}]}]我需要:事件={'operation':“generate”,“url:”xxxxxxxx”,“items:[{'unit of_of_measurement:“a”,“code:”001'}}}是的,我的错了,我假设你的事件对象可能有很多条目。所以在我的代码中,因为extractedEvents
是一个列表,所以需要通过extractedEvents[0]
获取第一个元素。但在现实中,如果你确信你只会有一个事件,那么就使用上面@pressurationlayer的解决方案。
event=
{
"operacion":"generar",
"url":"xxxxxxxx,"
"items":[
{
"unidad_de_medida":"un",
"codigo":"001"
}
]
}
def lambda_handler(event, context):
payload=json.dumps(event,indent=4)
variables= json.loads(payload)
url =variables["url"] --------->>>>I have an error here too.<<<<<<<-----------
headers={'content-type': "application/json",'authorization': "xxxxxxxx",'cache-`enter code here`control': "no-cache",'postman-token': "xxxxxxxx"}
response = requests.request("POST", url, data=payload, headers=headers)
event=[[{'operacion': 'generar','url':'xxxxxxxx', 'items': [{'unidad': 'un', 'codigo':'001'}]}]]
json.dumps(event[0][0])
# '{"operacion": "generar", "url": "xxxxxxxx", "items": [{"unidad": "un", "codigo": "001"}]}'