📅  最后修改于: 2020-09-06 09:09:22             🧑  作者: Mango
在该章节中,我们将学习如何使用Python将JSON格式的数据写入文件和字符串。
Json模块提供以下两种方法将Python对象编码为JSON格式,一种是编码为json格式的字符转,另一种则为json格式的文件。
json.dumps()
方法将任何Python对象编码为JSON格式的字符串。json.dump()
方法用于将Python序列化的对象作为JSON格式的数据写入文件。文件类型可以是任何文件,包括文本,JSON甚至二进制文件。更形象的展示二者的区别。
要将Python对象编码为JSON等效json模块,可以参考以下转换表,jump.jumps函数会依据此转换表编码。
Python | Json |
dict | object |
list, tuple | array |
str | string |
nt, float, int & float-derived Enums | number |
True/False | true/false |
None | numm |
1. json.dump()的语法
它用于将Python对象作为JSON格式的数据写入文件。
json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
2. json.dumps()的语法
它用于将Python对象写入JSON字符串。
json.dumps(obj,*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
3. 主要参数解析
obj
只是一个要转换为JSON格式的Python可序列化对象。fp
是用于将JSON格式的数据写入文件的文件指针。Python json模块始终生成字符串对象,而不是字节对象,因此fp.write()
必须支持字符串输入。skipkeys
为true(默认值:False),则将跳过不是基本类型的dict键(str,int,float,bool和None),而不是引发TypeError
。例如,如果您的字典键之一是自定义Python对象,则在将字典转换为JSON时将省略该键。ensure_ascii
为true(默认值),则保证输出中所有传入的非ASCII字符都转义了。如果ensure_ascii
为false,则这些字符将原样输出。allow_nan
默认为True,因此将使用其JavaScript等效项(NaN,Infinity,-Infinity)。如果为False,则序列化超出范围的float值(nan,inf,-inf)将是ValueError。indent
参数用于漂亮地打印JSON以使其更具可读性。默认值为(', ', ': ')
。为了获得最紧凑的JSON表示形式,您应该使用(',', ':')
消除空格。sort_keys
为true(默认值:False),则词典的输出将按键排序。在多种情况下,您需要在程序中使用序列化的JSON数据。如果您在应用程序中需要此序列化的JSON数据以进行进一步处理,则可以将其转换为本地Python str
对象,而不是将其写入文件中。
例如,您收到一个HTTP请求以发送开发人员详细信息。您从数据库表中获取了开发人员数据并将其存储在Python字典或任何Python对象中,现在您需要将该数据发送回请求的应用程序,因此需要将Python字典对象转换为JSON格式的字符串以作为响应发送在JSON字符串中。为此,您需要使用json.dumps()
。
在json.dumps()
返回的Python字典的JSON字符串表示。现在来看示例。
将Python字典转换为JSON格式的字符串
import json def SendJsonResponse(resultDict): print("Convert Python dictionary into JSON formatted String") developer_str = json.dumps(resultDict) print(developer_str) # sample developer dict developer_Dict = { "name": "Jane Doe", "salary": 9000, "skills": ["Python", "Machine Learning", "Web Development"], "email": "imango@qq.com" } SendJsonResponse(developer_Dict)
输出:
Convert Python dictionary into JSON formatted String {“name":“ Jane Doe",“salary":9000,“skills":[“ Python",“Machine Learning",“Web Development"],“email":“imango@qq.com“}
—–>>>未完待续。。。。。