如何在Python中动态构建指定结构的JSON用于API调用
Python动态构建目标JSON结构实现方法
在Python中不需要直接拼接JSON字符串,你只需要按照目标结构先构建Python原生的字典、列表组合,再通过json标准库序列化即可,变量、动态数组都可以直接嵌入到对应位置。
实现代码示例
import json # 以下为可替换的动态变量,可根据业务逻辑从数据库、用户输入等渠道获取 dynamic_list_names = ["listname0001", "listname0002", "listname0003"] dynamic_subscribers = [ { "first_name": "Subscriber's First Name", "last_name": "Subscriber's Last Name", "email": "subscriber_email0001@api.trumpia.com", "mobile": { "number": "2003004000", "country_code": "1" } } ] # 按照目标JSON结构构建Python原生字典 payload = { "list_name": ",".join(dynamic_list_names), # 动态拼接成逗号分隔的列表名字符串 "subscriptions": dynamic_subscribers # 直接传入动态订阅者数组 } # 场景1:需要得到JSON字符串用于其他场景 json_str = json.dumps(payload, ensure_ascii=False, indent=2) print(json_str) # 场景2:使用requests调用API,无需手动序列化,直接传入json参数即可 # import requests # api_response = requests.post("你的API接口地址", json=payload)
关键说明
- 结构对应规则:Python的
dict对应JSON对象,list对应JSON数组,字符串、数字、True/False/None分别对应JSON的字符串、数字、布尔值和null,无需手动处理格式转义 - 动态扩展:如果需要增加
subscriptions里的订阅者,直接对dynamic_subscribers列表执行append()操作即可,比如遍历数据库查询结果批量添加 - 序列化参数:
ensure_ascii=False可以保留中文等非ASCII字符,indent用于格式化输出,生产环境调用API时可去掉这两个参数减少传输体积
内容的提问来源于stack exchange,提问作者Landon Statis
相关产品推荐
相关产品推荐

