Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用解析列作为时间戳将csv上载到QuestDb?_Python_Questdb - Fatal编程技术网

Python 如何使用解析列作为时间戳将csv上载到QuestDb?

Python 如何使用解析列作为时间戳将csv上载到QuestDb?,python,questdb,Python,Questdb,我想用指定的时间戳列将csv文件导入QuestDb表。我必须指定其中一个列不是字符串,而是一个时间戳,我称之为 导入请求 schema='[{“name”:“date”,“type”:“Timestamp”,“pattern”:“yyyy-MM-dd”}]' 将open('..\HavCases.csv',rb')作为f: r=请求。post(r'http://localhost:9000/imp?name=table3&overwrite=true×tamp=date', 文件={'

我想用指定的时间戳列将csv文件导入QuestDb表。我必须指定其中一个列不是字符串,而是一个时间戳,我称之为

导入请求
schema='[{“name”:“date”,“type”:“Timestamp”,“pattern”:“yyyy-MM-dd”}]'
将open('..\HavCases.csv',rb')作为f:
r=请求。post(r'http://localhost:9000/imp?name=table3&overwrite=true×tamp=date',
文件={'schema':架构,'data':f})
打印(右文本)
但date列一直以字符串形式返回,响应是

不是时间戳“日期”

当我从URL中删除
×tamp
时,我看到列被解析为字符串,而不是时间戳

+-----------------------------------------------------------------------------------------------------------------+
|      Location:  |                                            table3  |        Pattern  | Locale  |      Errors  |
|   Partition by  |                                              NONE  |                 |         |              |
|      Timestamp  |                                              NONE  |                 |         |              |
+-----------------------------------------------------------------------------------------------------------------+
|   Rows handled  |                                               780  |                 |         |              |
|  Rows imported  |                                               780  |                 |         |              |
+-----------------------------------------------------------------------------------------------------------------+
...
|              9  |                                              date  |                   STRING  |           0  |

我发现了一个aswer,这不是一个小问题,我必须查看QuestDb源代码,所以将它发布在这里供其他人使用

显然,当QuestDb解析导入请求时,它希望“schema”文件位于csv“data”之前。当Python请求从文件字典发布数据时,它似乎按照键的字母顺序发布数据,因此
文件={'schema':schema,'data':f}
文件={'data':f,'schema':schema}
是等效的,首先发送数据,然后发送模式

为了解决这个问题,我必须以元组列表而不是字典的形式提供files参数:

将open(r'..\HavCases.csv',rb')作为f:
r=请求。post(r'http://localhost:9000/imp?name=table3&overwrite=true×tamp=date', 
文件=[('schema',schema),('data',f)])
打印(右文本)