gpt4 book ai didi

python - 就地编辑 Python 字典或将 json 解析为对象

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:59 25 4
gpt4 key购买 nike

我绝不是 Python 大师,但我知道自己的出路。然而,在过去的两个小时里,我一直在努力反对以下内容:

我正在使用 json.loads() 函数解析来自 WCF Web 服务的 JSON 响应。结果是我在整个应用程序中使用的 Python 字典。但是,我现在需要混淆 id、reseller_id 等,以便在 HTTP GET 请求中使用。

这是一个响应的示例:(请注意,我有很多这样的响应,所以我正在寻找一个通用的解决方案。)我想要用 id 值的散列替换任何 id 的值

{
"token":"String content",
"user":{
"distributor":{
"email":"String content",
"id":2147483647,
"name":"String content"
},
"email":"String content",
"first_name":"String content",
"id":2147483647,
"last_name":"String content",
"reseller":{
"email":"String content",
"id":2147483647,
"name":"String content",
"portal_css":"String content",
"portal_logo":"String content",
"portal_name":"String content",
"portal_url":"String content"
},
"role":2147483647
}
}

我已经尝试过各种使用代码的策略:

result = json.loads(json_result, object_hook=lambda d: namedtuple('X', d.keys())(*d.values()))

def fun(d):
if 'id' in d:
yield d['id']
for k in d:
if isinstance(d[k], list):
for i in d[k]:
for j in fun(i):
yield j

我无法让它正常工作。所以:

问题 1:我可以将 json 转换为(匿名)Python 对象吗?如何转换?

问题 2:我可以就地编辑生成的字典吗?

问题 3:当一切都失败了;有人知道如何实现这一目标吗?

非常感谢!

最佳答案

json.loads(data)

解析 json 字符串 data 并返回一个 Python dict,我猜你可以调用匿名,直到你将它分配给一个变量:

d = json.loads(data)

然后您可以就地修改字典。假设您所有的响应都具有相同的结构,您可以按如下方式散列 id:

d["user"]["id"] = your_hash_function(d["user"]["id"])

关于python - 就地编辑 Python 字典或将 json 解析为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16040287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com