如何重定向/显示控制台输出(包括我在程序中打印的输出),以便它出现在 Dash 应用程序中(在用户看到的屏幕上)?
我需要解码并加载到DB,这是一个以下列格式到达的字符串:
"[{u'date': 1508760000000, u'value': 0}, {u'date': 1509364800000, u'value': Decimal('5.989999771118164')}, {u'date': 1509969600000, u'value': Decimal('5.989999771118164')}, {u'date': 1510574400000, u'value': Decimal('9.579999923706055')}]"
Run Code Online (Sandbox Code Playgroud)
目前,这是我用来将其转换为数据帧的代码:
import pandas as pd
import json
#json for example:
my_json="""[{u'date': 1508760000000, u'value': 0}, {u'date': 1509364800000, u'value': Decimal('5.989999771118164')}, {u'date': 1509969600000, u'value': Decimal('5.989999771118164')}, {u'date': 1510574400000, u'value': Decimal('9.579999923706055')}]"""
my_json=my_json[1:-1]
my_json=my_json.replace("u'","'")
my_json=my_json.replace("'",'"')
my_json=my_json.replace('Decimal("','')
my_json=my_json.replace('")','')
my_json=my_json.replace(', {','~ {')
my_json_list=my_json.split('~')
my_dict_list=[json.loads(row) for row in my_json_list]
df=pd.DataFrame(my_dict_list)
Run Code Online (Sandbox Code Playgroud)
是否有更短/更优雅的方式来执行此操作?
我正在使用 Dash 构建用于将数据发送到远程服务器的 GUI。更新过程是异步的 - 因为加载数据可能需要时间。用户按下仪表板 GUI 上的按钮后,它会将远程服务器上的数据保存为 CSV 文件,保存文件后,它会告诉服务器(使用 API)开始运行上传过程。我想使用每 5 秒触发一次的回调向用户显示上传进度。我在 Dash 的网站上找不到任何关于此类回调的文档。是否有任何方法可以每 X 秒触发一次回调?