python json编码 python json解码
python处理json数据的核心方法包括:1. 使用json.dumps()将python对象转为json字符串,可设置缩进参数美化输出;2. 使用json.loads()将json字符串还原为python对象,需注意格式合法性;3. 利用json.dump()和json.load()实现文件读写,需正确打开文件模式;4. 自定义默认函数和object_hook函数处理复杂类型如自定义类。这些方法覆盖了json操作的常见需求,实际使用时需要注意异常处理和格式验证。
处理JSON数据在Python中非常常见,尤其是在与API交互、读写配置文件或进行前处理数据传递时。Python内置了json模块,专门用于处理JSON格式的数据。下面从实际使用角度出发,分几个关键点讲清楚怎么用。1. 把Python对象转成JSON字符串:json.dumps()
最常见的“编码”操作,比如你有一个字典或者列表,想把它变成字符串传给前置或者保存到文件里。使用方法:json.dumps(data, indent=2)indent参数是美化输出的缩进空格数,调试时用很有可能就是这个。
举个例子:
立即学习“Python免费学习笔记(深入)”;import jsondata = { quot;namequot;: quot;Alicequot;, quot;agequot;: 30, quot;is_studentquot;: False}json_str = json.dumps(data, indent=2)print(json_str)登录后
注意:Python中的True/False会被转成JSON的true/falseNone会被转成null如果对象里有自定义类实例,会默认报错,需要自己复制网络化逻辑2. 把JSON字符串转回Python对象:json.loads()
这个操作叫“解码”,适用于你收到一段JSON字符串(比如从网络请求中获取),想把它还原成Python里的字典或列表来操作。使用方法:json.loads(json_string)
示例:json_str = '{quot;namequot;: quot;Bobquot;, quot;agequot;: 25, quot;is_studentquot;: true}'data = json.loads(json_str)print(data[quot;namequot;]) # 输出Bob登录后复制转换转换
常见问题:JSON字符串格式不正确时会抛出异常建议先用在线工具验证结构是否合法如果原始JSON包含特殊类型(如日期字符串),需要手动3. JSON读写文件:json.dump() 和 json.load()
除了处理字符串,更多时候你会直接和文件打交道。
读取文件:json.dump()with open(quot;data.jsonquot;, quot;wquot;) as f: json.dump(data, f, indent=2)登录后读取复制文件:json.load()with open(quot;data.jsonquot;, quot;rquot;) as f: data = json.load(f)登录后复制
注意事项:文件打开模式要正确(写用w,读用r)多次写入一个文件时要注意格式,不能直接追加JSON内容,否则会破坏结构如果文件不存在,open("xxx.json", "r")会报错,建议配合os.path.exists()检查4. 处理复杂类型:自定义序列化和反序列化
默认情况下,json.dumps()只能处理基本类型(dict、list、str、int等)。如果你有自定义类或者特殊结构,就需要自己处理。自定义序列化class Person: def __init__(self, name,age): self.name = name self.age = Agedef default(o): if isinstance(o, Person): return o.__dict__ raise TypeError()p = Person(quot;Tomquot;, 28)json_str = json.dumps(p, default=default)登录后复制自定义反序列化 def object_hook(d): if 'name' in d and 'age' in d: return Person(d['name'], d['age']) return ddata = json.loads(json_str, object_hook=object_hook)登录后复制
这种方式适合封装到工具函数里复用,避免每次都要写重复代码。
基本上就这些。只要掌握了这几个核心函数,就能应对大多数JSON处理场景了记住,虽然功能简单,但格式错误和类型不匹配是常见坑点,处理前最好加一层判断或异常捕获。
以上就是如何使用Python处理JSON数据?编码解码方法详细解的详细内容,更多请关注乐哥常识网其他相关文章!