小编buh*_*htz的帖子

查明持久 sqlalchemy 映射对象是否被修改

有没有办法查明持久 sqlalchemy 映射对象是否被修改?

这意味着我从数据库收到一个对象(持久的,具有身份的)。然后用户(也许!)在对话框窗口中修改其数据。

有没有办法找出内存/RAM 中的对象与数据库本身中的实例相比是否被修改?我不想将每个属性与对话框窗口中的数据进行比较。

python sqlalchemy

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

通过 Tkinter 中的 listvariable 修改列表框条目

我在教程中读到,我可以将数据从其中分离tkinter.Listbox到我自己的列表中。我在这里的例子中做到了这一点。但是我如何根据我自己的变量列表操纵列表框条目的顺序?

#!/usr/bin/env python3

from tkinter import *

root = Tk()
mylist = ['one', 'two', 'three']
var = StringVar(value=mylist)
box = Listbox(master=root, listvariable=var)
box.pack(fill=BOTH, expand=True)

# this need to affect the list
mylist.append('four')
mylist.remove('two')
mylist.insert(3, mylist.pop(1))

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

这里的列表框(GUI 中)不受影响。

据我了解,有一种方法可以Listbox在修改数据列表时绝对自动刷新其内容。所以我不用碰Listbox。我只需要触摸里面的数据list().

有办法吗?

tkinter python-3.x

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

在 Tkinter Python 中测量字符串的高度?

我需要 Tkiner 小部件中字符串的像素高度。它是 a 一行中的文本Listbox。

我知道我可以用tkinter.font.Font.measure. 但是我怎样才能得到高度呢?一个类似的问题仅将宽度主题化,而不是高度主题化。

python tkinter python-3.x

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

一个因子如何在R中自动命令它的水平?

f1 <- c("a", "b", "c")

f2 <- c("x", "e", "t")

f1 <-factor(f1)

f1
#[1] a b c
#Levels: a b c


str(f1)
#Factor w/ 3 levels "a","b","c": 1 2 3

f2 <-factor(f2)

f2
#[1] x e t
#Levels: e t x

str(f2)
#Factor w/ 3 levels "e","t","x": 3 1 2
Run Code Online (Sandbox Code Playgroud)

正如上面提到的,为什么在f2被"e"取为3?当按字母顺序考虑时,它不应该是1吗?

r

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

使用Python标准包将HTTP响应代码转换为文本消息

这个问题是关于HTTP 响应代码的。

在我的 python 应用程序中,我想向用户展示与此类代码相关的文本。例如404将是Not Found。

我检查了 python 文档,但找不到为我提供代码文本/字符串的包。python 库中真的没有这样的东西吗?

解决方法是使用外部源。例如,来自 IANA 的官方 CSV 文件。

python http http-headers python-3.x

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

如何使用 pd.cut 对 nan 值进行分箱

我正在尝试编写一个代码,从包含空白值的数据帧(account_raw)创建垃圾箱。我的问题是 python 用我的第一个 bin 标签存储空白值:0 - 25k。我想要做的是为空白值创建一个单独的容器。有什么想法如何解决这个问题吗?谢谢

Bucket = [0, 25000, 50000, 100000,
          200000, 300000, 999999999999]
Label = ['0k to 25k', '25k - 50k',
         '50k - 100k', '100k - 200k',
         '200k - 300k', 'More than 300k']

account_raw['LoanGBVBuckets'] = pd.cut(
    account_raw['IfrsBalanceEUR'],
    bins=ls_LoanGBVBucket,
    labels=ls_LoanGBVBucketLabel,
    include_lowest=True).astype(str)
Run Code Online (Sandbox Code Playgroud)

python nan pandas

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

如何使用相同的语法模拟 pathlib.Path.open 和 pathlib.path.unlink ?

我在我的生产代码中使用pathlib.Path.open()and 。pathlib.Path.unlink()为了unittest那项工作。但我使用两种不同的方式patch()。一种带有@patch装饰器,一种带有上下文管理器with mock.patch()。

我只想要@patch这样的。

class MyTest(unittest.TestCase):
    @mock.patch('pathlib.Path.unlink')
    @mock.patch('pathlib.Path.open')
    def test_foobar(self, mock_open, mock_unlink):
Run Code Online (Sandbox Code Playgroud)

但目前真正的代码看起来像这样

import unittest
from unittest import mock
import pathlib

class MyTest(unittest.TestCase):
    @mock.patch('pathlib.Path.unlink')
    def test_foobar(self, mock_unlink):
        # simulated CSV file
        opener = mock.mock_open(read_data='A;B\n1;2')

        with mock.patch('pathlib.Path.open', opener):
            result = validate_csv(file_path=pathlib.Path('foo.csv'))
            self.assertTrue(result)
Run Code Online (Sandbox Code Playgroud)

从技术上讲,我的问题是我不知道如何mock_open在使用@patch装饰器时添加 CSV 内容。

它可能看起来像这样:

class MyTest(unittest.TestCase):
    @mock.patch('pathlip.Path.open')
    @mock.patch('pathlib.Path.unlink')
    def test_foobar(self, mymock_unlink, mymock_open):
        # simulated CSV file
        opener = mock.mock_open(read_data='A;B\n1;2')

        # QUESTION: …
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking python-3.x

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

Python-从一个列表切换到另一个列表(最佳方式)

我有两个清单

list1 = [1, 3, 5, 8]
list2 = [7, 10, 12]
Run Code Online (Sandbox Code Playgroud)

和一些破坏 int 值,switchValue = 4 我需要迭代 ,list1而其元素的值小于switchValue,然后迭代完整的list2。我知道如何在分支中使用ifandbreak语句来做到else这一点,但我正在研究一些更优化(推荐)的方法,如何在 Python 2.7 中实现这一点,就性能而言,因为这些列表将相当大。此外,列表是排序的。

result应该1, 3, 7, 10, 12

list1 = [1, 3, 5, 8]
list2 = [7, 10, 12]
switchValue = 4
for i in list1:
    if i < switchValue:
        print(i)
    else:
        for j in list2:
            print(j)
        break
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

运行 alembic 命令导致 ImportError: 无法从 'sqlalchemy.sql.expression' 导入名称 '_BindParamClause'

每当我运行任何alembic命令时都会发生这种情况。我正在使用 sqlalchemy 版本 2.0.3

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ado/anaconda3/lib/python3.8/site-packages/alembic/__init__.py", line 8, in <module>
    from . import op  # noqa
  File "/home/ado/anaconda3/lib/python3.8/site-packages/alembic/op.py", line 1, in <module>
    from .operations.base import Operations
  File "/home/ado/anaconda3/lib/python3.8/site-packages/alembic/operations/__init__.py", line 1, in <module>
    from .base import Operations, BatchOperations
  File "/home/ado/anaconda3/lib/python3.8/site-packages/alembic/operations/base.py", line 3, in <module>
    from .. import util
  File "/home/ado/anaconda3/lib/python3.8/site-packages/alembic/util/__init__.py", line 9, in <module>
    from .sqla_compat import (  # noqa
  File "/home/ado/anaconda3/lib/python3.8/site-packages/alembic/util/sqla_compat.py", line 8, in <module>
    from sqlalchemy.sql.expression …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy alembic

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

Add an annotation with "add" command in Taskwarrior

Can I add an annotation to a task in Taskwarrior while creating it like that?

task add Description annotation:Anno
Run Code Online (Sandbox Code Playgroud)

Normaly I have to do it with two commands

task add Description
task 1 annotate Anno
Run Code Online (Sandbox Code Playgroud)

taskwarrior

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