前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python3 解析 json 字符串并返回支持属性访问的对象

python3 解析 json 字符串并返回支持属性访问的对象

作者头像
卓越笔记
发布2023-02-18 10:24:05
1.9K0
发布2023-02-18 10:24:05
举报
文章被收录于专栏:卓越笔记

目的

将任意一个 json 字符串,转换为 python 的 object 对象,转换后支持使用属性访问。

方法

json 解析命令行使用的 argparse,可以任意规定命令行关键字,并能使用属性访问。  查看 argparse 源码可以看到 argparser 调用 parse_args() 后返回的是一个 Namespace 对象,这里拿来借用一下;  同时,json.loads 有个名为 object_hook 的参数,支持将 object 进行转换,因此结合起来就有了以下代码。

代码语言:javascript
复制
from argparse import Namespace
import json


def json_to_object(data):
    return json.loads(data, object_hook=lambda d: Namespace(**d))

效果

代码语言:javascript
复制
Python 3.6.8rc1 (v3.6.8rc1:cc3e73212a, Dec 11 2018, 17:37:34)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> from argparse import Namespace
>>> import json
>>>
>>>
>>> def json_to_object(data):
...     return json.loads(data, object_hook=lambda d: Namespace(**d))
...
>>>
>>> json_data = json.dumps({"name": "rumor", "age": 25, "fav": {"fav1": "dog", "fav2": "food"}})
>>>
>>> print(json_to_object(json_data).fav.fav1)
dog
>>>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-8-18 2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档