小编Seb*_*ski的帖子

使用 Dash Plotly 更新加载

这是我最近部署的一个简单的网络应用程序:https ://covid19-visualization-seb.herokuapp.com/

我使用了 Dash 框架并使用 Heroku 进行了部署。

我使用 df =pd.read_csv('owid-covid-data.csv')加载数据集。最新的数据集可以在这里找到:

https://covid.ourworldindata.org/data/owid-covid-data.csv

数据每天都在更新。问题是,如果我只df为链接设置变量,那么服务器启动时它只会从源获取数据一次。因此,如果我想每天保持数据最新,我就必须每天重新启动服务器,这是无稽之谈。

Dash 文档提供了页面加载更新功能,如下所示:

import datetime

import dash
import dash_html_components as html

def serve_layout():
    return html.H1('The time is: ' + str(datetime.datetime.now()))

app.layout = serve_layout

if __name__ == '__main__':
    app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)

当我刷新页面时它起作用(时间自行更新)

但我想在页面加载时重新分配一个变量,不知道如何执行此操作,但出现错误。我尝试过这样的事情:

import dash
import pandas as pd

app = dash.Dash()

df = ''

def get_data():
    global df
    df = pd.read_csv('https://covid.ourworldindata.org/data/owid-covid-data.csv')


app.layout = get_data

if __name__ == '__main__':
    app.run_server(debug=True)
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?

python pandas plotly plotly-dash

5
推荐指数
1
解决办法
6583
查看次数

从对象数组中获取对象属性名称数组

我正在寻找与此类似的东西:

const object1 = {
  a: 1,
  b: 2,
  c: 3
};

console.log(Object.getOwnPropertyNames(object1));
// expected output: Array ["a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)

然而在我的例子中我有:

const objectArray1 = [
  { a: 112, b: 322, c: 233 },
  { a: 611, b: 232, c: 331 },
  { a: 132, b: 232, c: 342 }
];
Run Code Online (Sandbox Code Playgroud)

["a", "b", "c"]从中获得最有效的方法是什么?

此外,这可能永远不会发生,但如果其中一个objectArray1对象包含d: 345或缺少键/值对,则需要进行处理。

有任何想法吗?

javascript arrays javascript-objects

1
推荐指数
1
解决办法
47
查看次数