小编LaP*_*lme的帖子

如何让Superset识别字符串为日期时间?

我正在使用Superset作为SQLite数据库的数据可视化工具。因为SQLite没有DATETIME类型,所以我使用TEXT类型添加日期和一个小时。

但是,Superset仍无法识别此“ TEXT”或String是日期!

这是我的数据:

CREATE TABLE TEST(
    TEST_ID int PRIMARY KEY NOT NULL,
    VEHICLE_ID int NULL,
    TEST_TYPE_ID int NULL,
    CHECK_TYPE_ID int NULL,
    NUM_TEST int NULL,
    TEST_DATE TEXT NOT NULL
);

INSERT INTO TEST (TEST_ID, VEHICLE_ID, TEST_TYPE_ID, CHECK_TYPE_ID, NUM_TEST, TEST_DATE) VALUES (844, 504, 3, 1, 3, '2007-01-01 10:00:00');
Run Code Online (Sandbox Code Playgroud)

然后在Superset中,我收到以下消息:

“ Datetime列未作为零件表配置提供,并且此类型的图表是必需的”

详细说明:

  Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/superset/viz.py", line 234, in get_payload
    df = self.get_df()
  File "/usr/lib/python2.7/site-packages/superset/viz.py", line 78, in get_df
    self.results = self.datasource.query(query_obj)
  File "/usr/lib/python2.7/site-packages/superset/connectors/sqla/models.py", line 538, in query …
Run Code Online (Sandbox Code Playgroud)

sqlite datetime superset

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

将文件中的所有十六进制替换为十进制

我想用 .sql 文件中的十进制等效值替换所有十六进制。

我有数十万行这样的行:

INSERT INTO TEST (TEST_ID, VEHICLE_ID, TEST_TYPE_ID, TYPE_ID, NUM_TEST, TEST_DATE, HOUR_START, HOUR_END, ....) VALUES (844, 504, 3, 1, 3, CAST(0x0000991400000000 AS DateTime), CAST(0x00009914008FC76C AS DateTime), CAST(0x0000991400906924 AS DateTime), ......);
Run Code Online (Sandbox Code Playgroud)

我想使用这个 sql 文件来创建 SQLite 数据库。但 SQLite 无法识别十六进制。所以目标是替换文件的所有十六进制。

我找到了这个解决方案来替换特定的十六进制:

decimal = int("0x0000991400000000", 0)
Run Code Online (Sandbox Code Playgroud)

我发现这个解决方案可以用另一个单词替换所有出现的单词:

for line in fileinput.input():
line = re.sub('wordToReplace','newWord', line.rstrip())
Run Code Online (Sandbox Code Playgroud)

我尝试在第二个中使用第一个,但“newWord”需要一个字符串,而我给出一个 int。有什么办法可以做我想做的事?

感谢您的时间 !

python search hex replace

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

标签 统计

datetime ×1

hex ×1

python ×1

replace ×1

search ×1

sqlite ×1

superset ×1