【发布时间】:2018-02-19 20:32:11
【问题描述】:
我正在尝试使用 WordNik () 为该脚本的字典获取随机单词:https://github.com/jmagrippis/password
WordNik 正在输出:
[{"id":7936915,"word":"Tanganyikan"},{"id":27180,"word":"cartographic"},{"id":48094,"word":"deterministic"},{"id":1485119,"word":"higher-risk"},{"id":120986,"word":"juristic"},{"id":1830806,"word":"magnetorheological"},{"id":320495,"word":"quelled"},{"id":324610,"word":"remoter"},{"id":215158,"word":"telemetric"},{"id":225207,"word":"uninquisitive"}]
这是我的代码:
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"time"
"github.com/jmagrippis/password"
)
type Words struct {
id []int64
word []string
}
type GetWordsResponse struct {
WordList []Words
}
func getWords(speech string) (*GetWordsResponse, error) {
url := fmt.Sprintf("http://api.wordnik.com/v4/words.json/randomWords?hasDictionaryDef=false&includePartOfSpeech=%s&minCorpusCount=0&maxCorpusCount=-1&minDictionaryCount=1&maxDictionaryCount=-1&minLength=5&maxLength=-1&limit=10&api_key=api_key", speech)
res, err := http.Get(url)
if err != nil {
panic(err.Error())
}
body, err := ioutil.ReadAll(res.Body)
if err != nil {
panic(err.Error())
}
var s = new(GetWordsResponse)
var arr []string
_ = json.Unmarshal([]byte(body), &arr)
log.Printf("Unmarshaled: %v", arr)
return s, err
}
func main() {
dictionary := &password.Dictionary{
Adjectives: []string{"beautiful", "homely", "magical", "posh", "excellent"},
Subjects: []string{"mermaids", "unicorns", "lions", "piranhas"},
Verbs: []string{"love", "fancy", "eat", "bring", "fear", "aggravate"},
Adverbs: []string{"cuddling", "slapping", "shouting", "jumping"},
Objects: []string{"teddy-bears", "diamonds", "buckets", "boxes"},
}
generator := password.NewGenerator(dictionary, time.Now().UnixNano())
pass := generator.Generate()
fmt.Printf("%s", pass)
getWords("Verb")
}
如您所见,我正在尝试使用 WordNik API 来请求副词、名词等,然后根据这些单词制作字典以生成密码。我对数组和处理数据很糟糕。
【问题讨论】:
-
您可能不想将您的 API 密钥包含在有关堆栈溢出的帖子中......我会使我的密钥无效并生成一个新的
-
如果您可以将问题归结为非常简单的问题....这是我无法解组的数据,这里是代码崩溃的地方等....尝试隔离您的部分代码已损坏,不包含 API 密钥,然后发布 play.golang 链接并包含我们将在该链接中找到的详细信息
-
导出结构字段。
-
不仅你的字段没有导出,而且
GetWordsResponse与响应中的json结构不匹配。