小编alb*_*ert的帖子

为已知键创建具有空值的空对象或对象

几天后我正在使用JavaScript和AngularJS,我不确定以下内容:

我正在开发一个示例项目,在该项目中,用户可以使用存储在JS对象中的一些属性来创建新车,如下所示:

var car = {
    color: 'black',
    seating: 'leather',
    fuelconsumption: 'moderate'
}
Run Code Online (Sandbox Code Playgroud)

用户可以通过单击添加按钮来创建新车.然后Angular创建一个新的汽车实例,用户可以指定新车的愿望.

但是,我应该创建一个像空的对象

var car = {}
Run Code Online (Sandbox Code Playgroud)

并使用绑定的文本输入添加所需的键或我应该做一些不同的事情?

由于新车的属性是先验已知的,我还可以使用所需的键创建一个对象,并将null它们的值设置为:

var car = {
    color: null,
    seating: null,
    fuelconsumption: null
}
Run Code Online (Sandbox Code Playgroud)

由于例如最佳实践,哪种方式更可取?

javascript object angularjs

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

使用Alpine Linux在Docker容器中的LaTeX(Latex的存储库)

我计划在docker环境中使用LaTeX来生成基于服务器的PDF报告。

在当前的测试系统环境中,我正在使用来自集线器的docker容器,它似乎运行得很好。

但是,如前所述容器的dockerfile容器是基于Ubuntu的,由于Ubuntu的系统开销,与我真正需要的功能相比,这导致了相对较大的容器大小。

我认为我可以摆脱Docker Inc.的不必要系统开销只需使用Alpine Linux而不是Ubuntu即可

不幸的是,我在Alpine的存储库中找不到任何LaTeX软件包。我将基于非docker的Alpine系统安装为虚拟机并尝试:

apk update
apk search -v --description 'latex' 
Run Code Online (Sandbox Code Playgroud)

找不到任何相关的软件包。除此之外,我无法使用Google找到有关LaTeX软件包的更多信息。

那么,有没有像官方存储库那样为Alpine提供LaTeX,或者有没有办法在Alpine中使用例如Debian / Ubuntu软件包?


更新:

texlive可用软件包。但是,正如这里讨论的那样这似乎已经被打破了...


由于链接断开而更新:

上面提供的链接已断开。软件包概述的新链接在此处

ubuntu latex pdflatex docker alpine-linux

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

pandas猜测分隔符用sep = None

熊猫文档有这个:

使用sep = None,read_csv将尝试在某些情况下通过"嗅探"自动推断分隔符.

我怎样才能访问大熊猫对分隔符的猜测?

我想读取我的文件的10行,让pandas猜测分隔符,并启动我已经选择了分隔符的GUI.但我不知道如何访问大熊猫认为的分界符.

另外,有没有办法将pandas传递给字符串列表以限制它的猜测?

python csv pandas

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

Mongoengine:检查文档是否已在数据库中

我正在使用 mongoengine 为 MongoDB 开发一种初始化例程。

我们向用户提供的文档是从多个 JSON 文件中读取的,并在应用程序启动时使用上述 init 例程写入数据库。

其中一些文档具有唯一键,mongoengine.errors.NotUniqueError如果将具有重复键的文档传递到数据库,则会引发错误。这根本不是问题,因为我能够使用try-except.

然而,其他一些文档就像一堆值或参数。因此,没有可以检查的唯一键以防止它们被插入数据库两次。我想我可以从所需的集合中读取所有现有文档,如下所示:

docs = MyCollection.objects()
Run Code Online (Sandbox Code Playgroud)

docs并使用以下命令检查要插入的文档是否已可用:

doc = MyCollection(parameter='foo')
print(doc in docs)
Run Code Online (Sandbox Code Playgroud)

即使数据库中已经false有文档也会打印。MyCollection(parameter='foo')

如何在不使用唯一键的情况下实现重复检测?

python duplicates mongodb mongoengine

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

Python-Eve:在插入数据库之前,使用请求前事件挂钩修改数据

我通过在eve-API上执行POST请求,将新数据添加到数据库中。由于需要从Python端添加一些数据,因此我想可以通过使用pre-request事件hook添加这些数据。

那么,在将数据插入数据库之前,是否有一种方法可以使用预请求钩子修改POST请求中包含的数据?我已经了解了如何实现这样的钩子,但是对插入数据库之前如何修改数据一无所知。

python mongodb eve

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

获取 ttk.Frame 的默认背景

我通过调整这个例子并将它的移植到 Python3 ,将滚动条与 ttk notebook 结合起来。

我尽可能频繁地使用 ttk 小部件来获得更“现代”的用户界面。但是,没有 ttk 画布小部件,所以我使用了标准的 tkinter 画布。默认情况下,画布小部件的背景颜色似乎是白色(至少在 Mac OS 上),而所有 ttk 小部件的默认背景都是灰色(请参见下面的屏幕截图)。

如何获取包含标签小部件的 ttk 框架的默认背景,以便我可以将其传递到画布Canvas(parent, background='bg_color')并删除包含 ttk 标签的 ttk 框架周围的空白区域?

我知道 ttk 用于styles定义小部件的外观。但是,我不知道如何读取(默认)样式的背景值。

截屏

#!/usr/bin/env python3
# coding: utf-8

from tkinter import *
from tkinter import ttk

master = Tk()

def populate():
    """Put in some fake data"""
    for row in range(100):
        ttk.Label(frame, text="%s" % row, width=3, borderwidth="1", relief="solid").grid(row=row, column=0)
        t="this is the second column for row %s" % row …
Run Code Online (Sandbox Code Playgroud)

python tk-toolkit canvas tkinter ttk

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

tkinter frame:更改其内容时修复帧高度

我正在研究一个带有适当GUI的自编模拟工具.通常,有两种主要的用户模式.在第一个中,用户可以输入多个值以进行所需的计算.在所有计算完成后,用户可以通过单击右下角的"显示结果"按钮切换到"结果模式".通过这样做,GUI上部带有图像的主窗口不会改变.但是,GUI下部的前一个输入条目应该更改为消息区域,其中显示错误,警告或其他信息(持续时间,收敛性......).

我能够使两种GUI模式都可切换,但是下框架(称为框架lowerframe)的框架高度发生了变化,看起来非常难看.

我认为所描述的行为是帧内容的不同高度的结果.在第一模式中有几个entry小部件,而在第二模式中只有一个小小label部件包含foo.

如何防止框架高度动态变化?换句话说:有没有办法来修复高度lowerframe

我指定height=200(以及btnframe在GUI的右下角),这似乎没有任何效果,因为包含foo-label小部件的框架肯定小于那些200像素.

--- MWE ---

#!/usr/bin/env python3
# coding: utf-8

from tkinter import *
from tkinter import ttk
from PIL import Image, ImageTk

class Window(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.parameternames = []

        # create master window
        self.master = master

        # create master window
        self.create_masterwindow()

    def create_masterwindow(self):
        """
        creates master window with menubar and sets GUI to input mode
        """
        self.master.title('GUI') …
Run Code Online (Sandbox Code Playgroud)

python tk-toolkit tkinter widget python-3.x

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

发生 RuntimeWarning 后暂停或停止 numpy 计算

我正在使用numpy.optimize.fsolve. 由于不正确的初始值,其中一些计算导致 RuntimeWarning 告诉

RuntimeWarning:根据最近十次迭代的改进来衡量,迭代没有取得良好进展。
警告。警告(味精,运行时警告)

或者

RuntimeWarning:根据最近五次 Jacobian 评估的改进来衡量,迭代没有取得良好进展。
警告。警告(味精,运行时警告)

由于我将所有初始值和所属结果写入文本文件(只是将标准输出管道传输到文件),因此我想知道上面提到的 RuntimeWarnings 在我的 500 步计算中发生了什么。

正如numpy 文档中提到的,警告由Python 的标准警告模块处理,但是有没有办法在第一次 RuntimeWarning 发生后停止或暂停计算?

python numpy

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

嵌套字典的查找时间如何增加?

当我们进一步"嵌套"它们时,有人会评论字典的复杂性如何增加?

例如,我添加一个元素如下:

dict_name[a][b][c][d] = 0
Run Code Online (Sandbox Code Playgroud)

我认为任何字典的查找时间应该是相同的(常数时间为O(1)),但是如果我添加这样的元素,它会显着改变吗?

dict_name[a][b][c]....[z]
Run Code Online (Sandbox Code Playgroud)

python lookup time dictionary time-complexity

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

烧瓶:`@after_this_request` 不工作

我想在用户下载由 Flask 应用程序创建的文件后删除一个文件。

为此,我在 SO 上找到了这个答案,它没有按预期工作,并引发了一个after_this_request未定义的错误。

因此,我更深入地研究了Flask 的文档,其中提供了有关如何使用该方法的示例片段。因此,我通过定义after_this_request示例代码段中所示的函数来扩展我的代码。

执行代码resp。运行服务器按预期工作。但是,该文件没有被删除,因为@after_this_request没有被调用,这很明显,因为After request ...它没有打印到终端中 Flask 的输出:

#!/usr/bin/env python3
# coding: utf-8


import os
from operator import itemgetter
from flask import Flask, request, redirect, url_for, send_from_directory, g
from werkzeug.utils import secure_filename

UPLOAD_FOLDER = '.'
ALLOWED_EXTENSIONS = set(['csv', 'xlsx', 'xls'])

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER


def allowed_file(filename):
    return '.' in filename and \
           filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS


def …
Run Code Online (Sandbox Code Playgroud)

python request delete-file flask python-3.x

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

避免嵌套 .apply()

我正在处理由同一天/日期的不同时间组成的数据集。不同的时间代表给定事件的发生。除了时间之外,日期还在另一列中给出(有关更多详细信息,请参阅下面的数据片段)。

对于进一步的数据处理,我需要将不同的时间与日期结合起来以获得完整的日期时间时间戳。幸运的是,我能够通过实现这样的嵌套.apply()调用来实现所需的输出:

import io

import pandas as pd


DATA_STRING = """
date        event_1     event_2     event_3  
2019-12-16  14:01:00    14:27:00    14:47:00
2020-01-16  13:47:00    14:08:00    14:28:00
2020-01-20  12:02:00    12:23:00    12:42:00
"""

TIME_COLUMNS = ['event_1', 'event_2', 'event_3']


def combine_timestamp(row):
    date = row['date']
    times = row[TIME_COLUMNS]
    return times.apply(lambda t: pd.Timestamp.combine(date, t.time()))


file_like = io.StringIO(DATA_STRING)
df = pd.read_csv(file_like, sep='\s+')

df['date'] = pd.to_datetime(df['date'])
df[TIME_COLUMNS] = df[TIME_COLUMNS].apply(pd.to_datetime)
# --> timestamps with date set to today (not a problem as time is relevant only)

df[TIME_COLUMNS] = df.apply(combine_timestamp, …
Run Code Online (Sandbox Code Playgroud)

python datetime apply pandas

2
推荐指数
1
解决办法
53
查看次数

Python:如何检查是否可以添加两个数组?

# *-* coding: utf-8 *-*

import numpy as np
import scipy as sc

A = np.array([[1,1], [1,2], [3,1]])
B = np.array([[2,3], [3,2], [1,4]])

print (A==B).all()
print np.array_equal(A, B)
print np.array_equiv(A, B)
print np.allclose(A, B)
Run Code Online (Sandbox Code Playgroud)

但他们只是说"假",但我仍然可以添加这两个数组.我必须检查是否允许加法/乘法(维度?),如果没有,我必须发出错误.

python numpy

0
推荐指数
1
解决办法
677
查看次数

md-tabs:当从ui-router内部调用函数时,md-selected的设置变量不起作用

我有一个ui-router模板md-tabs,其中包含一些选项卡是静态的,其他选项卡是通过ng-repeat迭代数据模型的给定数组动态创建的.

在这些动态创建的选项卡中,有三个按钮可以执行以下操作

  • 将标签向左移动一个位置
  • 将标签向右移动一个位置

move tab按钮调用同一控制器内的功能.$index当前显示的选项卡的值以及所需的方向(-1向左1移动,向右移动)将传递给该功能.

因此视图的HTML片段如下所示:

<md-content flex layout-padding>
    <md-card>
        <md-tabs md-dynamic-height md-border-bottom md-autoselect md-swipe-content md-selected="selectedTab">
            <md-tab id="{{ 'tab' + $index }}" data-ng-repeat="tab in tabs track by $index">
                <md-tab-label>Tab {{ $index + 1 }}</md-tab-label>
                <md-tab-body>
                    <md-card-title>
                        <md-card-title-text>
                            <div flex layout="row">
                                <div flex><span class="md-headline">Tab {{ $index + 1 }}</span></div>
                                <div flex align="right">
                                    <md-button ng-click="moveTab(-1, $index)">Move tab left</md-button>
                                    <md-button ng-click="moveTab(1, $index)">Move tab right</md-button>
                                </div>
                            </div>
                        </md-card-title-text>
                    </md-card-title> …
Run Code Online (Sandbox Code Playgroud)

tabs angularjs angularjs-scope angular-ui-router angular-material

0
推荐指数
1
解决办法
1707
查看次数