1

我已经搜索了几个小时的 stackoverflow,但仍然找不到答案,因此非常感谢您的帮助!我正在使用 API 构建一个指标仪表板并且卡住了......

我正在使用 requests Python HTTP 库来帮助我从 API 检索销售数据。这很好用:

payload = {'data_source': 'daily'}
r = requests.get('https://api.appfigures.com/v1.1/sales/dates/2013-03-06/2013-03-14',        params=payload, auth=(api_key1, api_pass1))
data = json.loads(r.content) 

JSON 格式的输出(1 天示例):

{
    "2013-03-06": {
    "downloads": 1000,
    "updates": 20,
    "net_downloads": 100,
    "revenue": "20.00",
    "date": "2013-03-06"
},....

我使用 HTML 创建了仪表板的结构:

    <tr class="dailytarget">
        <td class="metricname">Revenue</td>
        <td>NEED TO PUT REVENUE TOTAL HERE</td>
    </tr>

现在,大问题:如何将表格单元格分配给 JSON 输出中的值?例如,我需要汇总 JSON 输出中的所有“收入”字段,并将它们存储在表格的一个单元格中。我怎样才能做到这一点?

4

2 回答 2

0

您可以通过遍历每个 json 日期信息来总结所有 json 数据

如果您的 api 调用返回一个对象数组:

from decimal import Decimal

total_revenue = sum(Decimal(x['revenue']) for x in data)

这将获取每个收入值,将其从字符串转换为Decimal类型,然后将所有这些值相加。

现在,您所要做的就是将 total_revenue 插入到您的 html 字符串中

html_str = """
<tr class="dailytarget">
    <td class="metricname">Revenue</td>
    <td>{}</td>
</tr>""".format(total_revenue)

以上所有内容都是format用来将总收入值放入一个字符串中。

现在棘手的部分是,您将如何将这个 HTML 呈现给用户?如果您想将其公开为网站,使用任意数量的 python web 框架可能是最简单的

于 2013-05-12T16:56:39.673 回答
0
days = json.loads(r.content)
total_revenue = 0.0
html = "<table>"
html += "<tr><th>Date</th><th>Revenue</th></tr>"
for day in days:
    day_revenue = float(day.get('revenue', 0))
    html += "<tr><td>%s</td><td>%f</td></tr>" % (day, day_revenue)
    total_revenue += day_revenue
html += '<tr><td colspan="2" style="text-align:right;">Total Revenue: %f</td><tr>' % (total_revenue)
html += "</table>"
print html
于 2013-05-12T19:40:17.810 回答