小编den*_*aar的帖子

将大型Pandas DataFrame写入SQL Server数据库

我有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)

python sql-server sqlalchemy pandas

11
推荐指数
2
解决办法
2万
查看次数

带引号的Python argparse参数

有什么办法可以告诉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)

python optparse argparse

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

使用 Django 实时显示数据

我有一个模拟器应用程序,它不断地将数据以 JSON 格式输出到给定的主机名和端口号 (UDP)。我希望能够将模拟器输出指向 Django Web 应用程序,以便我可以监视/处理传入的数据。

如何使用 Django 实时接收和处理数据?有哪些工具或软件包可以实现这一点?我确实遇到过这个答案:How to serve data from UDP stream over HTTP in Python? ,但我不完全明白。

例如:类似于此页面:http : //money.cnn.com/data/markets/

另外,我不需要在数据库中存储任何流数据。我只需要根据流数据执行查找。也许这根本不是 Django 问题?

python django

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

React 组件构造函数中的 ipcRenderer

我有一个使用 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)

reactjs react-router electron

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

使用 CreateAPIView 检查对象权限

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被调用了,但在任何地方都没有捕获异常,因此无论如何都会正常发布评论。我在这里缺少什么?

django django-rest-framework

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