小编luc*_*ald的帖子

Python在正确的时区获得当前时间

现在我用

import datetime
print(datetime.datetime.now().strftime("%X"))
Run Code Online (Sandbox Code Playgroud)

将当前时间显示为字符串.
问题是,我的计算机在Europe/Berlin时区中运行,此处不计算+2到UTC的偏移量.而不是19:22:26它应该显示21:22:26 与我在这里找到的其他答案不同,我不通过调用存储它

datetime.datetime(2014, 7, 10, 18, 44, 59, 193982, tzinfo=<UTC>)
Run Code Online (Sandbox Code Playgroud)

datetime.datetime.now()
Run Code Online (Sandbox Code Playgroud)

所以我尝试了(并且失败了)以下内容:

>>> from pytz import timezone
>>> datetime.datetime.now().astimezone(timezone('Europe/Berlin'))
 ValueError: astimezone() cannot be applied to a naive datetime
Run Code Online (Sandbox Code Playgroud)


编辑

无法发布答案,因为此问题已标记为已关闭

我遇到此问题的服务器不再存在.无论如何,这里有一些值得检查的事情:

  • 您的服务器/系统的时区是否设置正确?
    • docker容器可能与主机不同步,值得检查.
  • 时间是否正确?更改时区后,您最终没有达到+2小时?

python time timezone

57
推荐指数
1
解决办法
7万
查看次数

在类型别名中使用泛型

我当前的类型注释看起来类似于以下内容,我想使用类型别名来避免重复太多:

类具有类变量,可以是:

  • 某些指定类型,或
  • 返回相同类型的函数(带有参数)。
class Foo(object):
  state:  ClassVar[Union[str, Callable[[SomeObject], str]]]  # str or func->str
  number: ClassVar[Union[int, Callable[[SomeObject], int]]]  # int or func->int
  foobar: ClassVar[Union[bool, Callable[[SomeObject], bool]]] # bool or func->bool
# end class
Run Code Online (Sandbox Code Playgroud)

为了完整起见,这里是一个示例实现:

class FooBar(Foo):
   state = "something"
   number = lambda x: int(x.bla)
   
   @classmethod
   def foobar(cls, x):
     return x.blabla == cls.state
   # end def
# end class
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何制作可订阅的泛型。我正在寻找类似的东西:

ClassValueOrCallable = lambda T: ClassVar[Union[T, Callable[[SomeObject], T]]]

class Foo(object):
  state:  ClassValueOrCallable(str)
  number: ClassValueOrCallable(int)
  foobar: ClassValueOrCallable(bool)
Run Code Online (Sandbox Code Playgroud)

编辑:
按照mypy …

python generics typing python-3.x

19
推荐指数
1
解决办法
1万
查看次数

如何在组合集群中获取关于我们自己的信息

我有一个名为"node"的docker容器,我想扩展.该节点需要知道它实际上有多少节点的节点.总数可能是一个环境变量,但目前更令人不安.

$ docker-compose scale node=100

Starting projectdir_node_1 ... done
Creating and starting projectdir_node_2 ... done
Creating and starting projectdir_node_3 ... done
Creating and starting projectdir_node_4 ... done
Creating and starting projectdir_node_5 ... done
Creating and starting projectdir_node_6 ... done
Creating and starting projectdir_node_7 ... done
Creating and starting projectdir_node_8 ... done
Creating and starting projectdir_node_9 ... done
...
Creating and starting projectdir_node_99 ... done
Creating and starting projectdir_node_100 ... done
Run Code Online (Sandbox Code Playgroud)

怎么projectdir_node_100现在是节点100?我看到那$HOSTNAME是容器id(例如2c73136347cd),但是找不到我需要的主机名的ENV变量.

作为参考,我的 …

docker docker-compose

7
推荐指数
1
解决办法
1007
查看次数

连接到本地主机上的套接字

我在连接到localhost上自己的套接字时遇到问题。(或“localhost”)将永远花费,并 最终超时
s.connect(('127.0.0.1', 4458))
TimeoutError: [Errno 110] Connection timed out

它应该打开端口 4458,然后另一个脚本将向其发送一些字符。两个脚本都应该在同一个 Raspberry Pi 上运行,而“服务器”脚本将使用 sudo 执行(以访问 GPIO),而另一个则不使用 sudo,成为聊天机器人。

我在 Pi (使用python 3.4.1 )上运行服务器和在我的笔记本电脑(mac,python 3.4.2)上运行客户端没有任何问题。

它还可以反向工作,即笔记本电脑上的服务器脚本和 Raspberry 上的客户端。

作为最终测试,它适用于上述 MacBook 上的服务器和客户端。

Pi 上仅服务器 + 客户端是行不通的。

程序冻结

我的缩短代码(如果有帮助):

# $ sudo python3 server.py

__author__ = 'luckydonald'
import socket # server
import time # wait for retry
import threading
class Server(threading.Thread):
    port = 4458;
    QUIT = False

     def run(self):
        s = socket.socket()
        failed = True
        print ("Starting Server …
Run Code Online (Sandbox Code Playgroud)

python sockets localhost raspberry-pi raspbian

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

保持表格的宽高比

我有一张表示坐标的表格.
带坐标的桌子

我怎样才能动态改变大小,所以它总是适合父div(宽度:100%),就像图像一样?

现在我使用硬编码的@media查询.但必须有更好的方法.

.hitbox {
  width: 25%; /* of page */
}

@media (min-width: 702px) and (max-width: 800px) {
  .hitbox .tablewrapper {
    font-size: 9px;
  }
}
@media (min-width: 800px) and (max-width: 840px) {
  .hitbox .tablewrapper {
    font-size: 10px;
  }
}
@media (min-width: 840px) and (max-width: 915px) {
  .hitbox .tablewrapper {
    font-size: 11px;
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑:

如果表需要变得更小,则包含的文本是固定文本大小的问题.

JSFiddle
这很好用.
宽 狭窄 但小一点,它不起作用.
失败 它应该使字体更小,或至少切割单元格.

编辑2: 整个表格应始终可见,阅读文本并不重要,但要查看它创建的图案(颜色为灰色或红色).

css html-table

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

如何在方格中排列两种尺寸的图像?

我正在尝试使用非表css aproach进行以下操作:

设计

我必须解决的问题之一是图像可以是不同的大小,高达512x512,但整个元素应保持1:1的宽高比.

我试着让所有图像浮动,并设置

.image {
  width: 33%;
  height: 33%;
}
Run Code Online (Sandbox Code Playgroud)

除了我设置的第一个width: 66%; height: 66%.

我也尝试用divs 包装它们以使定位更容易:

<div class="all-the-images">
  <div class="image-row1">
    <div class="image-big">
      <div class="image"><img src="http://placehold.it/498x512" /></div>
    </div>
    <div class="image-right">
      <div class="image"><img src="http://placehold.it/313x313" /></div>
      <div class="image"><img src="http://placehold.it/498x512" /></div>
    </div>
  </div>
  <div class="image-bottom">
    <div class="image"><img src="http://placehold.it/512x234" /></div>
    <div class="image"><img src="http://placehold.it/234x234" /></div>
    <div class="image"><img src="http://placehold.it/234x512" /></div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

http://codepen.io/luckydonald/pen/dOwNGX(使用更少)
https://jsfiddle.net/luckydonald/96hqds80/(生成的css)

但是不同的图像大小会破坏行.

html css

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

手动打开上下文管理器

我的问题是,如何在不使用的情况下执行任何上下文管理器with


Python 有上下文管理器的思想,

代替

file = open('some_file', 'w')
try:
    file.write('Hola!')
finally:
    file.close()
# end try
Run Code Online (Sandbox Code Playgroud)

你可以写

with open('some_file', 'w') as opened_file:
    opened_file.write('Hola!')
# end with
Run Code Online (Sandbox Code Playgroud)

虽然在大多数情况下,第二个是黄金解决方案,但对于在交互式控制台中进行测试和探索,第一个可以更好地使用,因为您可以一行一行地编写它。

>>> file = open('some_file', 'w')
>>> file.write('Hola!')
>>> file.close()
Run Code Online (Sandbox Code Playgroud)

我的问题是,我如何执行这样的with上下文管理器,最适合探索?


我的实际用例如下,但请尝试给出一个通用的答案,并且也适用于其他上下文管理器。

import flask

app = flask.Flask(__name__)

with app.test_request_context('/?name=Peter'):
    assert flask.request.path == '/'
    assert flask.request.args['name'] == 'Peter'
Run Code Online (Sandbox Code Playgroud)

来自烧瓶文档

python with-statement contextmanager

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

sync/async在Python中插入或更新ElasticSearch

我正在使用ElasticSearch批量Python API,它是否同时提供同步和异步api?

elasticsearch-py

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

如何通过键从 JSON 字符串中提取值

我有一个包含 Json 字符串记录的列。我想解析 json 并从 select 语句中获取特定键的值。

示例 JSON

{"kofaxDocId":"8ae16f46-c68f-11e5-8105-0e15fb39b661","systemDocType":"Loan Application","requestId":"c770a940-b9f3-4c41-aee6-3e08c1470ec6","docType":"Loan Application","confidence":0.6499999761581421,"engineType":"kofax","completionStatus":"Suggested"}
Run Code Online (Sandbox Code Playgroud)

我希望我的选择查询只获取键“置信度”的值。我尝试使用 Regex 和 Substring,但由于 json 长度不固定,因此它不会为所有记录获取正确的值。

我试过这些

SELECT substring(extended_metadata, ('"confidence":', extended_metadata ))  FROM documents ;

SELECT json_extract(extended_metadata,'confidence') CONFIDENCE from documents;
Run Code Online (Sandbox Code Playgroud)

我的 MYSQL 版本不支持 Json_extract()。

感谢帮助。

mysql sql json key-value

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

Java:可附加的字节数组

我想将字节附加到字节数组.结果应该是类型byte[],byte在计算它们之后添加单个.所以我的问题是:实现这一目标的最佳和/或最有效的方法是什么?怎么写到那个?

java arrays byte bytearray

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