我有74个相对较大的Pandas DataFrames(大约34,600行和8列),我试图尽快插入SQL Server数据库.在做了一些研究之后,我了解到良好的ole pandas.to_sql
函数对于SQL Server数据库中的大型插入是不利的,这是我采用的最初方法(非常慢 - 应用程序完成的时间差不多一小时,大约4分钟时使用mysql数据库.)
这篇文章以及许多其他StackOverflow帖子都有助于我指出正确的方向,但是我遇到了障碍:
我试图使用SQLAlchemy的Core而不是ORM,原因在上面的链接中解释.所以,我的数据帧转换为字典,使用pandas.to_dict
,然后做一个execute()
和insert()
:
self._session_factory.engine.execute(
TimeSeriesResultValues.__table__.insert(),
data)
# 'data' is a list of dictionaries.
Run Code Online (Sandbox Code Playgroud)
问题是insert没有得到任何值 - 它们显示为一堆空括号,我得到这个错误:
(pyodbc.IntegretyError) ('23000', "[23000] [FreeTDS][SQL Server]Cannot
insert the value NULL into the column...
Run Code Online (Sandbox Code Playgroud)
我传入的词典列表中有值,所以我无法弄清楚为什么值没有显示出来.
编辑:
这是我要离开的例子:
def test_sqlalchemy_core(n=100000):
init_sqlalchemy()
t0 = time.time()
engine.execute(
Customer.__table__.insert(),
[{"name": 'NAME ' + str(i)} for i in range(n)]
)
print("SQLAlchemy Core: Total time for " + str(n) +
" records " + str(time.time() - t0) + …
Run Code Online (Sandbox Code Playgroud) 有什么办法可以告诉argparse不要吃引号吗?
例如,当我用引号给出一个参数时,argparse只将引号内的内容作为参数.我也想捕获引号(不必在命令行上转义它们.)
pbsnodes -x | xmlparse -t "interactive-00"
Run Code Online (Sandbox Code Playgroud)
产生
interactive-00
Run Code Online (Sandbox Code Playgroud)
我想要
"interactive-00"
Run Code Online (Sandbox Code Playgroud) 我有一个模拟器应用程序,它不断地将数据以 JSON 格式输出到给定的主机名和端口号 (UDP)。我希望能够将模拟器输出指向 Django Web 应用程序,以便我可以监视/处理传入的数据。
如何使用 Django 实时接收和处理数据?有哪些工具或软件包可以实现这一点?我确实遇到过这个答案:How to serve data from UDP stream over HTTP in Python? ,但我不完全明白。
例如:类似于此页面:http : //money.cnn.com/data/markets/
另外,我不需要在数据库中存储任何流数据。我只需要根据流数据执行查找。也许这根本不是 Django 问题?
我有一个使用 Electron、React 和 React Router 的应用程序。我ipcRenderer
在组件构造函数中使用将事件从我的组件发送到主 Electron 进程。在我添加 React Router 之后,我注意到每次我离开并回到组件时,我的 ipcRenderer 事件都被一次又一次地添加。我认为这是因为 React Router 正在根据需要安装和卸载组件。
我通过检查事件是否已经像这样注册,找到了解决这个问题的方法:
if (!ipcRenderer._events['open-file-reply']) {
ipcRenderer.on('open-file-reply', (event, fileContents) => {
if(fileContents){
this.setState({
data: JSON.parse(fileContents)
});
}
});
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有更正确的方法来做到这一点。是否ipcRenderer.on
属于在构造函数中,无论如何,还是有一个更合适的地方把它?
编辑
这是迄今为止我想出的最佳解决方案:
import {ipcRenderer} from 'electron';
/* inside React component */
constructor(props) {
super(props);
// ...
this.loadFileListener = this.loadFileListener.bind(this);
ipcRenderer.on('open-file-reply', this.loadFileListener);
}
componentWillUnmount() {
ipcRenderer.removeAllListeners(['open-file-reply']);
}
loadFileListener(event, fileContents) {
// set state and stuff...
}
Run Code Online (Sandbox Code Playgroud) CommentCreateCreateAPIView
用于在另一个“报告”模型上发表评论。我需要阻止任何不是报告作者的人,或者不在允许发表评论的指定人群中的任何人使用此端点创建评论。
class CommentCreate(generics.CreateAPIView):
serializer_class = CommentSerializer
queryset = Comment.objects.none()
def check_object_permissions(self, request, obj):
if obj.report.creator != request.user:
# also check if request.user is in the group of people that can comment
raise exceptions.PermissionDenied(
detail='You do not have permission')
Run Code Online (Sandbox Code Playgroud)
我面临的问题是它check_object_permissions
被调用了,但在任何地方都没有捕获异常,因此无论如何都会正常发布评论。我在这里缺少什么?
python ×3
django ×2
argparse ×1
electron ×1
optparse ×1
pandas ×1
react-router ×1
reactjs ×1
sql-server ×1
sqlalchemy ×1