如何对API返回JSON中的float类型revenue值求和?
解决方案:对API返回的营收数据求和
嘿,欢迎来到Stack Overflow!作为新手已经能成功调用API并拿到结构化数据,这已经超棒啦👏 针对你要对revenue值求和的需求,这里有两种简单易懂的方法:
方法1:循环累加(直观易理解)
先初始化一个变量存储总和,再遍历返回的data列表,把每条数据的revenue值累加到这个变量里:
# 初始化总营收为0 total_revenue = 0.0 # 遍历数据列表,逐个累加营收值 for info in lst['data']: total_revenue += info['revenue'] # 打印最终结果 print(f"当日总营收:{total_revenue}")
方法2:用sum()函数结合生成器表达式(更简洁)
Python的sum()函数可以直接对可迭代对象求和,搭配生成器表达式一行代码就能搞定:
# 一行计算总营收 total_revenue = sum(info['revenue'] for info in lst['data']) print(f"当日总营收:{total_revenue}")
整合到你的现有程序中
你只需要把求和代码放到现有程序的末尾即可,以下是调整后的完整代码(顺便修正了原代码里的中文引号问题,避免Python报错):
import requests import json from datetime import datetime, timedelta import pprint autodatemonth = datetime.strftime(datetime.now() + timedelta(1), '%Y-%m') enterday = input('Enter day: ') AutoStartDate = str(autodatemonth) + '-' + str(enterday) MonthPlusOne = int(enterday) + 1 AutoEndDate = str(autodatemonth) + '-' + str(MonthPlusOne) parameters = { 'start_date': AutoStartDate, 'end_date': AutoEndDate, 'fields': ['date', 'revenue'], 'start_at_row': 1, 'api_key': 'xxx', 'id': xxx, 'row_limit':24 } # 发送API请求 response = requests.get("https://example.com/api/Reports/HourlySummary", params=parameters) lst = response.json() # 打印原始响应数据 pprint.pprint(lst) # 打印每小时营收(你原有的代码) for info in lst['data']: print(info['revenue']) # 新增:计算并打印总营收 total_revenue = sum(info['revenue'] for info in lst['data']) print(f"\n当日总营收:{total_revenue}")
运行这段代码后,你就能得到指定日期所有小时营收的总和啦!
内容的提问来源于stack exchange,提问作者SuddenlyCode
相关产品推荐
相关产品推荐

