小编use*_*693的帖子

如何按类型检查对象是否是 pytz.timezone 的实例?

我想要这样的东西:

from datetime import datetime, timezone
import pytz

def convert_datetime_by_timezone(timestamp_dt, to_timezone):

    if isinstance(to_timezone, str):
        return timestamp_dt.astimezone(pytz.timezone(to_timezone))

    elif isinstance(to_timezone, pytz.tzinfo.??????):
        return timestamp_dt.astimezone(to_timezone)

    else:
        raise Exception("Invalid timezone: '%s'" % str(to_timezone))
Run Code Online (Sandbox Code Playgroud)

但每次我创建 pytz 时区时,都会创建一个新类型的对象:

>>> type(pytz.timezone("UTC"))
<class 'pytz.UTC'>
>>> type(pytz.timezone("Europe/Budapest"))
<class 'pytz.tzfile.Europe/Budapest'>
Run Code Online (Sandbox Code Playgroud)

检查这个的正确方法是什么?

python timezone datetime pytz

9
推荐指数
1
解决办法
2835
查看次数

如何在NodeJS中使用http模块在同一端口上打开IPv4和IPv6套接字?

我正在运行以下 NodeJS 服务器代码:

var express = require('express');
var path = require('path');
var fs = require('fs');
var bodyParser = require('body-parser');
var http = require('http');
var ejs = require('ejs');

var app = express();
//configure the app
app.set('port', process.env.PORT || 3000);
// set the view engine to ejs
app.set('view engine', 'ejs');
app.use(bodyParser.raw());
app.use(bodyParser.urlencoded({
    extended: true
}));

app.use(function(req, res, next) {
    res.set('Access-Control-Allow-Origin', 'https://myServer.com');
    res.set('Access-Control-Allow-Methods', 'GET, OPTIONS,POST, PUT, PATCH, DELETE');
    res.set('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    res.set('Access-Control-Allow-Credentials', true);
    next();
});

//assets
require(path.join(__dirname, './server.js')).Server(app);
Run Code Online (Sandbox Code Playgroud)

当使用 IPv4 地址参数化服务器时:

var server = …
Run Code Online (Sandbox Code Playgroud)

sockets ip tcp http node.js

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

Pandas read_csv dtype指定除一个之外的所有列

我有一个CSV文件.我希望读取的大部分值都是字符串,但如果具有给定标题的列存在,我想将列读为bool.

因为CSV文件有很多列,所以我不想直接在每列上指定数据类型,并给出如下内容:

data = read_csv('sample.csv', dtype={'A': str, 'B': str, ..., 'X': bool})
Run Code Online (Sandbox Code Playgroud)

是否可以在每列上定义字符串类型但是同时将可选列作为bool读取?

我目前的解决方案是以下(但它非常低效和缓慢):

data = read_csv('sample.csv', dtype=str) # reads all column as string
if 'X' in data.columns:
    l = lambda row: True if row['X'] == 'True' else False if row['X'] == 'False' else None
    data['X'] = data.apply(l, axis=1)
Run Code Online (Sandbox Code Playgroud)

更新:样本CSV:

A;B;C;X
a1;b1;c1;True
a2;b2;c2;False
a3;b3;c3;True
Run Code Online (Sandbox Code Playgroud)

或者同样可以没有'X'列(因为列是可选的):

A;B;C
a1;b1;c1
a2;b2;c2
a3;b3;c3
Run Code Online (Sandbox Code Playgroud)

python csv dataframe pandas

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

Hugo 没有生成与开发模式相同的样式

这是我第一次尝试生成静态网站。

在使用命令的开发模式下一切正常hugo server。样式很棒,但是当我尝试使用hugo命令生成最终静态文件时,主题似乎没有正确应用,我不明白为什么。

我尝试了两个主题(快速入门中的主题和另一个主题),但两者都得到了类似的结果。

这些是我在后一种情况下在控制台中输入的命令:

hugo new site testsite
cd testsite
cd themes
git clone https://github.com/cowboysmall-tools/hugo-devresume-theme.git
cd ..
cp themes/hugo-devresume-theme/exampleSite/config.toml .

hugo server
# styling seems to work

hugo
# the opened public/index.html is broken 
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我做错了什么?

我已经遵循了这些教程:

快速开始

雨果德夫简历主题

更新

检查 chrome 控制台中的错误后,我可以看到如下值:

<link href="/dist/css/app.1cb140d8ba31d5b2f1114537dd04802a.css" rel="stylesheet">
Run Code Online (Sandbox Code Playgroud)

/如果我从样式的开头删除/dist/css/app.1cb140d8ba31d5b2f1114537dd04802a.css似乎可以正确应用。

显然我不想每次都手动执行此操作。配置上有什么解决方案吗?

html css themes static-site hugo

6
推荐指数
1
解决办法
2348
查看次数

如何实现多个异常的包装器?

我有一些模块,每个模块都包含一些我想从持久文件中解析的模型。

当我读取文件时,我不知道哪个模块能够解析它,这就是为什么我尝试使用第一个模块的解析器来解析它。如果失败,我会尝试使用第二个模块的解析器并继续,直到尝试完所有解析器为止。解析器可以以多个异常(Exception 类的不同子类型)或解析的模型对象(ModelBase 类的不同子类型)的形式返回信息。

如果没有一个解析器成功,我想将所有给定的异常包装成一个大异常,抛出它并在我的应用程序代码中的某个位置捕获它(以新的大异常的形式),在那里我可以处理问题(例如显示所有向用户解析问题和堆栈跟踪,以某种方式处理它们等)。

我的伪代码:

ModelBase getModelOrBigException(File file)
    throws MyBigException {

    List<Exception> exceptions = new ArrayList<>();
    for (Module module : myModules){
        try {
            ModelBase model = module.parse(file);
            return model;
        } 
        catch (ParsingException1 p1) { exceptions.add(p1); }
        catch (ParsingException2 p2) { exceptions.add(p2); }
    }
    throw new MyBigException(exceptions);
}
Run Code Online (Sandbox Code Playgroud)

我想调用代码

void openFilesHandler(){

    //... selecting file 

    try {
        process(getModelOrBigException(file));
    } catch (MyBigException e) { 
        // process the sub-exceptions or show them to user or print stacktraces of all sub-exceptions or show sub-exceptions …
Run Code Online (Sandbox Code Playgroud)

java error-handling exception

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

在常量时间内通过索引从列表中获取多个元素

在恒定时间内通过索引从列表中获取多个元素的最佳方法是什么?

如果我有一个数组:

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
Run Code Online (Sandbox Code Playgroud)

我有一个带索引的列表/数组:

List<Integer> indices = new ArrayList<>();
indices.add(0);
indices.add(2);
indices.add(3);
Run Code Online (Sandbox Code Playgroud)

如何在恒定时间内获得a,c,d?我需要这样的东西:

List<String> filtered = list.filterByIndex(indices);
filtered.stream().forEach(x -> System.out.print(x));
// output:"acd"
Run Code Online (Sandbox Code Playgroud)

更新: 物品的印刷当然不必是恒定的时间,只是收集物品.上面打印元素的代码仅用于演示目的.

java collections list java-8

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

通过传递参数和结果从 Java 调用 Python 代码

任何人都可以向我展示一个通过传递参数并返回结果来从 java 代码调用 python 脚本的工作简单示例(java + python 代码)?

python java parameters jython

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

如何使用Java 8流API将List <List <Double >>转换为List <Double []>和List <double []>?

我遇到了这个问题.我在这里找到了类似的答案,但没有一个能解决这个问题.我应该在这里使用mapToDouble()吗?有没有像"mapToDoubleArray"这样的东西?

java-8 java-stream

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

如何使用 NodeJS 的 supertest 测试 GET 请求的路径参数?

我找到了如何测试查询参数的示例

例如:

/api/browser?parameter1=2341&parameter2=5663
Run Code Online (Sandbox Code Playgroud)

但如果我有路径参数(如下所示的 URL),我找不到如何参数化测试:

const ENDPOINT_DETAILS = "/api/browser/:parameter";
app.get(ENDPOINT_DETAILS, function (req, res) {

    logger.info("Endpoint called: " + ENDPOINT_DETAILS);
    var details = {}
    // ... magic
    res.send(details);
}
Run Code Online (Sandbox Code Playgroud)

如果我不想修复参数,我的测试应该是什么样子?

describe("returns details", function() {

    it("returns status 200", function(done) {

        var sampleData = "sample_detail";

        // this won't work
        restApi.get('/api/browser/:parameter')
            .set('Accept', 'application/json')
            .expect(200, { "text" : "Detail of " + parameter + " is: " + sample_text})
            .end(function(err, res) {
                if (err) throw err;
                done();
            });

    });
});
Run Code Online (Sandbox Code Playgroud)

在调用之前是否可以知道parameterhere的值?restApi.get()

testing rest node.js supertest

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

如何从 Google Cloud Function 代码更改环境变量的值?

我试图了解如何正确使用Google Cloud Functions的环境变量。

我已经部署了一个函数,我想写入和读取它的环境变量(例如XXX:)。

if not os.environ.get("XXX"):
    print("XXX_SET_DEFAULT")
    os.environ.setdefault("XXX","1")
else:
    print("XXX_SET")
    os.environ["XXX"] = "1"
print("XXX_GET", os.environ["XXX"])
Run Code Online (Sandbox Code Playgroud)

触发该函数后,运行时环境变量列表中最初设置的值不会改变。

虽然行为有点不同,因为当我使用具有虚拟值的函数部署变量时,我可以XXX_SET在日志中看到字符串,但是当我不首先部署变量时,第一次运行我可以看到XXX_SET_DEFAULT,然后是第二次运行有XXX_SET

我已经使用(也从用户界面)设置了变量:

gcloud functions deploy my_func \
    ...
    --set-env-vars XXX=xxx
Run Code Online (Sandbox Code Playgroud)

问题

  • 是否有可能以某种方式从 python 代码中设置这个变量?
  • 是什么造成了日志中的这种差异(XXX_SET_DEFAULT, XXX_SETXXX_SET, XXX_SET
  • 为什么这个变量的值没有从 python 代码中设置?
    • 它是否与函数的多个实例化(需要时)有关?
  • Runtime environment variables和 和有什么区别Build environment variables
    • 我可以在两者之间部署变量吗Build environment variables
  • 在 Google 将环境变量与云函数结合使用的最佳实践是什么?

python environment-variables google-cloud-platform google-cloud-functions

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

Kubernetes Engine 和 Container Engine 有什么区别,为什么后者没有出现在我的仪表板上?

对不起,我对云计算不熟悉这个愚蠢的问题。

我正在尝试做这个教程,我听过这个Google Next 的视频。

根据链接的教程,我应该在仪表板上看到两个不同的菜单项,但我的仪表板上只出现了 Kubernetes Engine。我不知道看不到 Container Engine 菜单项的原因是什么。

据我了解,Kubernetes 引擎应该是一个托管的容器引擎(由 Google 管理),而 Container Engine 是非托管的。如果我想用 Docker Swarm 或 Apache Mesos 进行试验,Kubernetes 引擎不适合我。如果我在搜索字段中输入“Container Engine”,就会出现 Kubernetes Engine。

问题:为什么此菜单项在视频和教程中可见,而在我的仪表板上不可见?这个菜单项怎么了?这个功能是否从谷歌云中删除了?或者这个功能是否以某种方式合并到 Kubernetes Engine 中?

google-compute-engine google-cloud-platform kubernetes google-kubernetes-engine

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

比较存储在string中的非常大的数字

比较字符串文字中包含的两个非常大的数字的最佳方法是什么?

例如,我想比较以下内容:"90000000000000000000000000000000000000000000000000000000000000000000000000001""100000000000000000000000000000000000000000000000000000000000000000000000000009"

要么

"000000000011111111111111111111111111111111111111111111111111111111111111111111""0000001111111111111111111111111111111111111111111111111111111111111111111111"

在这两种情况下,显然第二个更大,但是如何在不迭代元素的情况下有效地找到它?

c# string largenumber compare

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

如何按键合并多个词典

我希望得到一个类似联合的多个(3个或更多)字典的合并字典.

是)我有的:

d1 = {'key1': 'x1', 'key2': 'y1', 'key4': 'z1'}
d2 = {'key1': 'x2', 'key2': 'y2', 'key5': 'z2'}
d3 = {'key1': 'x3', 'key3': 'y3', 'key4': 'z3'}
Run Code Online (Sandbox Code Playgroud)

我想得到什么:

d_merged = {
    'key1' : ('x1', 'x2', 'x3'),
    'key2' : ('y1', 'y2', None),
    'key3' : (None, None, 'y3'),
    'key4' : ('z1', None, 'z3'), 
    'key5' : (None, 'z2', None)
}
Run Code Online (Sandbox Code Playgroud)

什么是最pythonic /有效的方法?

我发现2本字典的例子在这里,但有没有更好的方法(例如:一个修真)有什么可以解决缺少关键问题在这里的一些词典?

有没有办法为任意数量的输入词典进行相同的合并?

python python-2.7 python-3.x

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