小编Nat*_*and的帖子

将任意Golang接口转换为字节数组

我正在尝试编写一个接受所有数据类型的哈希.进入函数后,我将数据作为字节数组处理.我无法弄清楚如何将任意interface{}转换为字节数组.

我尝试使用二进制包但它似乎取决于传入的数据类型Write().fn (docs)的一个参数需要知道参数的字节顺序.

所有数据类型大小都是一个字节的倍数(即使是bool),所以理论上这应该是简单的.

下面的代码,

package bloom

import (
    "encoding/gob"
    "bytes"
)

// adapted from http://bretmulvey.com/hash/7.html
func ComputeHash(key interface{}) (uint, error) {
    var buf bytes.Buffer
    enc := gob.NewEncoder(&buf)
    err := enc.Encode(key)
    if err != nil {
        return 0, err
    }
    data := buf.Bytes()

    var a, b, c uint
    a, b = 0x9e3779b9, 0x9e3779b9
    c = 0;
    i := 0;

    for i = 0; i < len(data)-12; {
        a += uint(data[i+1] | data[i+2] << 8 | …
Run Code Online (Sandbox Code Playgroud)

bytearray interface go

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

带有服务帐户的 Google Apps API 403

我一直在尝试对 Google 的 Admin API 进行查询,以列出我的 Google Apps 组织中的所有用户。我有权在Web UI 示例中进行此查询并获取结果,但当我尝试使用服务帐户进行查询时,会出现 403 错误。

import (
    "fmt"
    "io/ioutil"
    "log"

    "golang.org/x/net/context"
    "golang.org/x/oauth2/google"
    directory "google.golang.org/api/admin/directory_v1"
)

func main() {
    serviceAccountJSON, err := ioutil.ReadFile(serviceAccountFile)
    if err != nil {
        log.Fatalf("Could not read service account credentials file, %s => {%s}", serviceAccountFile, err)
    }
    config, err := google.JWTConfigFromJSON(serviceAccountJSON,
        directory.AdminDirectoryUserScope,
        directory.AdminDirectoryUserReadonlyScope,
    )

    client, err := directory.New(config.Client(context.Background()))
    if err != nil {
        log.Fatalf("Could not create directory service client => {%s}", err)
    }

    users, err := client.Users.List().ViewType(publicDataView).Domain(domain).Do() …
Run Code Online (Sandbox Code Playgroud)

go google-apps google-oauth service-accounts google-admin-sdk

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

将会话数据从Flask传递到WTForms

因此,我在将Flask会话对象的列表传递到正在使用的WTForms中时遇到问题。我正在尝试访问会话对象内的“策略”对象(这是一个列表)。

目标是列出与当前用户关联的所有策略。

在Flask应用中:

class Create_Indicator_Form(Form):
    security = TextField('Ticker Name', [
                         validators.Required(),
                         validators.Length(min=1, max=6)])
    mva_10 = BooleanField('10 day moving average')
    mva_25 = BooleanField('25 day moving average')
    strategy = SelectField('strategy', session['strategy'])
    def validate_mva_10(form, field):
        if form.mva_25.data is True and field.data is True:
            raise ValidationError('You can only choose one reference')
        if form.mva_25.data is False and field.data is False:
            raise ValidationError('You must choose at least one reference')

@app.route('/create_indicator', methods=['GET', 'POST'])
def create_indicator():
    check_if_logged_in()
    f = request.form
    create_indicator_form = Create_Indicator_Form(f)
    if request.method == 'POST' and …
Run Code Online (Sandbox Code Playgroud)

python session flask wtforms

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