go语言链接show_api,读取网络成语
go连接showapi网络的接口读取数据
var url = "https://route.showapi.com/1196-2?showapi_appid=自己的id&showapi_sign=自己的接口识别码&keyword="
从cmd终端输入模糊的关键字 进行api的查询
func GetCmd_arg() string {var cmd stringvar keyword stringflag.StringVar(&cmd, "cmd", "模糊查询", "姓名")flag.StringVar(&keyword, "keyword", "肉", "年龄")flag.Parse()return keyword
}
以关键字肉为例进行模糊查询
showapi_res_code": 0,"showapi_fee_num": 1,"showapi_res_body": {"ret_message":"Success","ret_code":0,"last_page":11,"total":105,"data":[{"title":"皮开肉绽"},{"title":"白骨再肉"},{"title":"髀里肉生"},{"title":"髀肉复生"},{"title":"不吃羊肉空惹一身膻"},{"title":"不知肉味"},{"title":"臭肉来蝇"},{"title":"肥鱼大肉"},{"title":"凡夫肉眼"},{"title":"凡胎肉眼"}]}}
这是网页返回的json格式的字符串是以map的形式进行返回的。
//获得html数据
func GetHtml(url string) string {rep, err := http.Get(url)if err != nil {fmt.Println("获取网址失败")os.Exit(1)}//相当于远程文件 要关闭 实现了read接口defer rep.Body.Close()bytes, err := ioutil.ReadAll(rep.Body)if err != nil {fmt.Println("读取数据网址失败")os.Exit(1)}respstr := string(bytes)return respstr
}
把返回的字符串传递给解析函数如下:
func ParsetoMaps(jsonstr string) map[string]Idiom {var tempmap = make(map[string]interface{})//这个接口必须传指针 否则没有值json.Unmarshal([]byte(jsonstr), &tempmap)datasile := tempmap["showapi_res_body"].(map[string](interface{}))["data"].([]interface{})for _, v := range datasile {idiom := Idiom{}title := v.(map[string]interface{})["title"].(string)idiom.Title = titleIdiommaps[title] = idiom}return Idiommaps
}
最重要的部分数据的持久化:
//数据持久化
func WriteIDiomstoFile(path string) error {//数据持久化dstFile, _ := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666)defer dstFile.Close()encoder := json.NewEncoder(dstFile)err := encoder.Encode(Idiommaps)if err != nil {fmt.Println("数据持久化失败")return err}fmt.Println("持久化成功")return nil
}
再次进入就不用连接api可以从文件读取:
//从文件读取数据
func init() {finfo, err := os.Stat(path)if finfo != nil && err == nil {init0()}file, _ := os.OpenFile(path, os.O_CREATE|os.O_RDONLY, 0666)decoder := json.NewDecoder(file)err = decoder.Decode(&Idiommaps)if err != nil {fmt.Println("解析失败")}
}
go语言链接show_api,读取网络成语相关推荐
- R语言导入、读取网络CSV数据(Read a CSV from a URL)实战:R原生read_csv、readr包、data.table
R语言导入.读取网络CSV数据(Read a CSV from a URL)实战:R原生read_csv.readr包.data.table 目录 R语言导入.读取网络CSV数据(Read a CSV ...
- pandas使用read_csv函数读取文件最后N行数据并保留表头、pandas使用read_csv函数读取网络url链接数据
pandas使用read_csv函数读取文件最后N行数据并保留表头.pandas使用read_csv函数读取网络url链接数据 目录
- Rust和C / C ++的跨语言链接时间优化LTO
Rust和C / C ++的跨语言链接时间优化LTO 链接时间优化(LTO)是LLVM实施整个程序优化的方法.跨语言LTO是Rust编译器中的一项新功能,使LLVM的链接时间优化可以在混合的C / C ...
- java读取网络图片数据_如何利用java读取网络照片
如何利用java读取网络照片 Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的`编程.以下是小编为大家搜索整理的如何利用java读取网络照片, ...
- 511遇见易语言组合框读取写配置文件和列表项目
本课首先录制了易语言组合框渐变背景颜色,然后通过读写配置文件ini来实现组合框加入项目,添加项目列表 视频链接: 77 组合框读取写配置文件和列表项目视频教程源码: .版本 2.程序集 窗口程序集_启 ...
- R语言scan函数读取文件为向量或者列表格式实战
R语言scan函数读取文件为向量或者列表格式实战 目录 R语言scan函数读取文件为向量或者列表格式实战 #基本语法
- Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统
/******************************************************************** * 标题:C语言链接mysql数据库,实现可以增删改查的角色 ...
- java通过url获取网页内容_Java语言通过URL读取网页数据并保存到本地文件(代码实例)...
本文主要向大家介绍了Java语言通过URL读取网页数据并保存到本地文件(代码实例),通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. Java通过URL读取网页数据并保存到本地文件(代码 ...
- fscanf不读取_NCNN-Breakdown(3) 读取网络的proto信息
开始 今天我们开始第三课,来说一些如何读取网络的proto信息,所以我们又要插上一个小红旗: 今天的讲解和之前的不太一样, 之前的都是讲类的实现.今天更加侧重讲解函数处理流程.让我们开始吧. 作用 当 ...
- x-data-spreadsheet 在线编辑excel文件,支持导入/导出/上传/读取网络 excel,合并单元格(vue版本)
1. 环境 vue:2.6.10 x-data-spreadsheet:1.1.8 less:4.0.0 less-loader:7.1.0 xlsx:0.15.1 axios:0.18.1 2. 优 ...
最新文章
- python使用heapq快速查找最大或最小的 N 个元素
- 迭代器模式和组合模式混用
- sparse double型矩阵转为full矩阵
- 2021-11-13包装类
- Oracle RAC 客户端连接负载均衡(Load Balance)
- react实现全选和反选_全选的实现
- 信息学奥赛一本通(1144:单词翻转)
- 在Rayeager px2上搭建web服务器anmpp
- 个位数统计(java)
- Git学习笔记与IntelliJ IDEA整合
- 电脑的发展史_UI设计发展史及未来
- jQuery学习教程 基础篇 归档
- 2021-08-20 Redis 基本类型:string set sortedSet Hash List
- SSM框架下的注册验证
- 学校人脸识别门禁功能介绍
- 解决百度首页导航栏透明度问题
- 营收、净利双收,贝壳找房稳了?
- c++虚指针及相应对象的数据结构
- 论文阅读笔记《REDE: End-to-End Object 6D Pose Robust Estimation Using Differentiable Outliers Elimination》
- 使用Xamarin实现跨平台移动应用开发(转载)