我正在编写一个python lambda函数,该函数从s3读取一个json文件,然后将其中一个节点发送给另一个lambda函数。这是我的代码:
我想要的json代码段
"jobstreams": [
{
"jobname": "team-summary",
"bucket": "aaa-bbb",
"key": "team-summary.json"
}
步骤1 – 将JSON转换为python对象以进行处理 注意:这些是我从另一个Stack Overflow大师那里获得的-谢谢!
def _json_object_hook(d): return namedtuple('X', d.keys())(*d.values())
def json2obj(data): return json.loads(data, object_hook=_json_object_hook)
routes = json2obj(jsonText)
第2步-然后,我遍历python对象并找到所需的json并将其转储
for jobstream in jobstreams:
x = json.dumps(jobstream, ensure_ascii=False)
但是,当我打印出来时,我只有值而不是属性。为什么会这样?
print(json.dumps(jobstream, ensure_ascii=False))
收益
[“ team-summary”,“ aaa-bbb”,“ team-summary.json”]
答案 0 :(得分:0)
我假设您的完整json文件看起来类似于示例中的
import json
js = {"jobstreams": [
{
"jobname": "team-summary",
"bucket": "aaa-bbb",
"key": "team-summary.json"
},
{
"jobname": "team-2222",
"bucket": "aaa-2222",
"key": "team-222.json"
}
]}
def extract_by_jobname(jobname):
for d in js['jobstreams']:
if d['jobname'] == jobname:
return d
json.dumps(extract_by_jobname("team-summary"))
# '{"jobname": "team-summary", "bucket": "aaa-bbb", "key": "team-summary.json"}'
答案 1 :(得分:0)
我最终从json.dumps给我的列表中创建了一个新的Dictionary。
["team-summary", "aaa-bbb", "team-summary.json"]
一旦我有了新的字典(平坦的),然后将其转换为json ....可能不是最有效的方法,但是我还有其他鱼可以油炸。感谢大家的帮助!