小编Ste*_*uch的帖子

将 base64 编码的字符串转换为十六进制整数

我有一个 base64 编码的随机数作为 24 个字符的字符串:

nonce = "azRzAi5rm1ry/l0drnz1vw=="
Run Code Online (Sandbox Code Playgroud)

我想要一个 16 字节的 int:

0x6b3473022e6b9b5af2fe5d1dae7cf5bf
Run Code Online (Sandbox Code Playgroud)

我最好的尝试:

from base64 import b64decode

b64decode(nonce)

>> b'k4s\x02.k\x9bZ\xf2\xfe]\x1d\xae|\xf5\xbf'
Run Code Online (Sandbox Code Playgroud)

如何从 base64 字符串中获取整数?

python base64 encode

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

需要以0.25的倍数进行舍入

我需要将货币金额计算为0.25,0.50,0.75,如果大于0.75,则必须舍入到下一个整数.

怎么做?

示例需要舍入:

  • 25.91至26,
  • 25.21至25.25
  • 25.44至25.50

等等.

python python-2.7 odoo odoo-10

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

深度复制所有函数参数

我有以下问题。我有一个函数,它将 2 个列表作为参数。为了不改变它们中的任何一个,我想使用该copy模块并创建deepcopy两者。

到目前为止,我只走到了这一步:

import copy 

def f(a1, a2):
    a1 = copy.deepcopy(a1)
    a2 = copy.deepcopy(a2)
    # Rest of function code below.
Run Code Online (Sandbox Code Playgroud)

我个人认为这段代码不好看。最好有这样的东西

import copy 

def f(a1, a2):
    newdeepcopy(locals())
    # Rest of function code below. The same code as above.
Run Code Online (Sandbox Code Playgroud)

该函数newdeepcopy应将局部变量作为参数,并仅在 f 的范围内重新定义变量 a1 和 a2。这可能吗?

python copy function python-3.x

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

如何使用 click、coverage.py 和 Tox 测试 Python CLI 程序?

我正在使用click开发一个 CLI 程序,我想开始添加一些使用coverage.py进行代码覆盖分析的测试。

我认为实现测试的一个好方法是使用子进程运行 CLI 本身。然而,coverage.py 报告零代码覆盖率,大概是因为子进程产生的 Python 实例没有coverage.py 检测。

我发现这个链接说我可以sitecustomize.py在我的 PYTHONPATH 中放置一个文件以始终强制 Python 开始覆盖率测量,但我正在使用 Tox 创建一个 venv 并运行测试。我找不到任何处理此问题的 Tox 设置。

我发现这个答案是说我应该只是运行通过我的CLI coverage run,但它看起来像,如果给一个Python脚本的路径,只有工作,我试图通过定义的入口点运行我的CLI setup.py。即我必须将测试代码中的所有命令行从myprogram更改为coverage run myprogram/cli/cli.py。我宁愿不这样做,因为这不是我期望用户运行程序的方式。

所以看起来两个选项是:

  1. 找出一种sitecustomize.py在 Tox 环境中工作的方法,或者

  2. 测试代码中的所有命令行都使用脚本路径而不是入口点(从长远来看可能更容易,但会使测试变得更加脆弱和难以理解)。想知道是否还有什么我遗漏的。

python code-coverage coverage.py python-click

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

如何告诉单击始终显示选项默认值

在 Python 的Click包中,我可以为一个选项定义默认值:

@click.option("--count", default=1, help="Number of greetings.")
Run Code Online (Sandbox Code Playgroud)

我可以指定在帮助中显示默认值:

@click.option("--count", default=1, help="Number of greetings.", show_default=True)
Run Code Online (Sandbox Code Playgroud)

如果我有很多选择

@click.option("--count-a", default=1, help="...")
@click.option("--count-b", default=2, help="...")
@click.option("--count-c", default=4, help="...")
.
.
.
Run Code Online (Sandbox Code Playgroud)

我如何告诉 Click 一般在帮助中始终显示默认值(而不明确添加show_default=True到每个单独选项的参数列表中)?

python command-line-interface python-click

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

Python:Json 对象的队列放置期间出错

我正在尝试将 JSON 对象放入队列中。

ips_q = queue.Queue;  
for ip in ips:
  item = {'ip': ip, 'timeout': 1}
  ips_q.put(item)
  ips_q.join()
Run Code Online (Sandbox Code Playgroud)

该行ips_q.put(item)给出了错误:

 TypeError: put() missing 1 required positional argument: 'item'
Run Code Online (Sandbox Code Playgroud)

提供了一个必需的参数,那么这个错误的含义是什么?

python queue python-3.x

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

实现 Cloudant 查询不区分大小写

我的查询具有以下选择器,

{
  "selector": {
    "_id": {
      "$gt": null
    },
    "series": {
      "$regex": "(?i)mario"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我有一个带有 的文档series = mario12,上面的查询将返回这个不应该发生的文档。我希望我的查询只忽略“马里奥”的情况。

如何实现不区分大小写?

case-insensitive parameterized-query cloudant

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

在熊猫数据框中将不同的日期时间格式转换为MM / DD / YYYY格式

我有pandas.DataFrame各种日期时间格式的日期列,并存储为列表对象,如下所示:

            date
1    [May 23rd, 2011]
2    [January 1st, 2010]
    ...
99   [Apr. 15, 2008]
100  [07-11-2013]
    ...
256  [9/01/1995]
257  [04/15/2000]
258  [11/22/68]
    ...
360  [12/1997]
361  [08/2002]
     ...
463  [2014]
464  [2016]
Run Code Online (Sandbox Code Playgroud)

为了方便起见,我想将它们全部转换为MM/DD/YYYY格式。似乎无法使用regex replace()函数来执行此操作,因为无法对列表对象执行此操作。另外,对每个单元使用strptime()会很费时。

将它们全部转换为所需MM/DD/YYYY格式的更简单方法是什么?我发现很难对数据框内的列表对象执行此操作。

注意:对于格式为[YYYY](例如[2014]和[2016])的单元格值,我将假定它们是该年的第一天(即1968年1月1日),对于诸如[08/2002](或[8/2002])的单元格值,我将假定它们为第一天该年当月(即2002年8月1日)的日期。

python datetime list dataframe pandas

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

链码可以与其他链码交互吗?

我正在尝试使用超级账本编写一个应用程序,并且我正在寻找一种与另一个链码的链码进行通信的方法。这在超级账本中可能吗?

我知道在以太坊中可以与其他智能合约进行通信,但在超级账本中也是可以的。我找不到与此相关的任何相关链接。关于如何解决这个问题的任何建议都会非常有帮助。

我查看了编写您的第一个应用程序,但找不到合适的解释。

blockchain hyperledger hyperledger-fabric

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

Python检索列表中标记之间的嵌套值列表

我有一个列表是:

[2,3,5,"TAG",6,7,3,2,6,"TAG",9,9,8,3]
Run Code Online (Sandbox Code Playgroud)

我想返回一个列表,其中包含位于"TAG"之间的嵌套的值列表.

所以结果列表看起来像:

[[2,3,5], [6,7,3,2,6], [9,9,8,3]]
Run Code Online (Sandbox Code Playgroud)

我在下面创建了一个尝试实现此方法但不起作用的方法:

def returnListBetweenTag(lst, tag):
  temp = []
  k = lst.index(tag)
  while lst != []:
      temp.append(lst[0:k])
      del lst[0:k+1]
  return temp
Run Code Online (Sandbox Code Playgroud)

打印出:

[[2, 3, 5], [6, 7, 3], [6, 'TAG', 9], [8, 3]]
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我理解我做错了什么,并提出一些修复建议吗?

python list slice

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