2022-11-12 01:38:49
在Python中,格式化JSON数据可以通过内置的json模块或第三方库(如prettytable和tabulate)实现。以下是具体方法和示例:
1. 使用 json 模块Python内置的json模块提供了dump()和dumps()函数,支持通过indent参数控制缩进,使输出更易读。
示例代码import jsondata = {'name': 'John Doe', 'age': 30, 'skills': ['Python', 'JSON']}# 格式化为字符串(带缩进)json_string = json.dumps(data, indent=4)print(json_string)# 写入文件(带缩进)with open('data.json', 'w') as f: json.dump(data, f, indent=4)关键参数将JSON数据转换为表格形式,适合展示结构化数据。
示例代码import jsonfrom prettytable import PrettyTabledata = {'name': 'John Doe', 'age': 30, 'skills': ['Python', 'JSON']}json_string = json.dumps(data)# 从JSON字符串创建表格table = PrettyTable()table.field_names = ["Key", "Value"]for key, value in json.loads(json_string).items(): table.add_row([key, value])print(table)输出效果+---------+-------------------+| Key | Value |+---------+-------------------+| name | John Doe || age | 30 || skills | ['Python', 'JSON']|+---------+-------------------+3. 使用 tabulate 模块将JSON数据转换为多种格式的表格(如Markdown、HTML等)。
示例代码import jsonfrom tabulate import tabulatedata = {'name': 'John Doe', 'age': 30, 'skills': ['Python', 'JSON']}json_string = json.dumps(data)# 转换为表格字符串table_data = [[k, v] for k, v in json.loads(json_string).items()]print(tabulate(table_data, headers=["Key", "Value"], tablefmt="grid"))输出效果+---------+-------------------+| Key | Value |+---------+-------------------+| name | John Doe || age | 30 || skills | ['Python', 'JSON']|+---------+-------------------+支持的格式通过tablefmt参数指定格式(如"plain"、"html"、"latex")。
4. 高级技巧根据场景选择合适的方法,既能提升代码可读性,也便于调试和展示数据。