我正在尝试编写一个接受所有数据类型的哈希.进入函数后,我将数据作为字节数组处理.我无法弄清楚如何将任意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) 我一直在尝试对 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
因此,我在将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) go ×2
bytearray ×1
flask ×1
google-apps ×1
google-oauth ×1
interface ×1
python ×1
session ×1
wtforms ×1