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,读取网络成语相关推荐

  1. 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 ...

  2. pandas使用read_csv函数读取文件最后N行数据并保留表头、pandas使用read_csv函数读取网络url链接数据

    pandas使用read_csv函数读取文件最后N行数据并保留表头.pandas使用read_csv函数读取网络url链接数据 目录

  3. Rust和C / C ++的跨语言链接时间优化LTO

    Rust和C / C ++的跨语言链接时间优化LTO 链接时间优化(LTO)是LLVM实施整个程序优化的方法.跨语言LTO是Rust编译器中的一项新功能,使LLVM的链接时间优化可以在混合的C / C ...

  4. java读取网络图片数据_如何利用java读取网络照片

    如何利用java读取网络照片 Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的`编程.以下是小编为大家搜索整理的如何利用java读取网络照片, ...

  5. 511遇见易语言组合框读取写配置文件和列表项目

    本课首先录制了易语言组合框渐变背景颜色,然后通过读写配置文件ini来实现组合框加入项目,添加项目列表 视频链接: 77 组合框读取写配置文件和列表项目视频教程源码: .版本 2.程序集 窗口程序集_启 ...

  6. R语言scan函数读取文件为向量或者列表格式实战

    R语言scan函数读取文件为向量或者列表格式实战 目录 R语言scan函数读取文件为向量或者列表格式实战 #基本语法

  7. Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统

    /******************************************************************** * 标题:C语言链接mysql数据库,实现可以增删改查的角色 ...

  8. java通过url获取网页内容_Java语言通过URL读取网页数据并保存到本地文件(代码实例)...

    本文主要向大家介绍了Java语言通过URL读取网页数据并保存到本地文件(代码实例),通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. Java通过URL读取网页数据并保存到本地文件(代码 ...

  9. fscanf不读取_NCNN-Breakdown(3) 读取网络的proto信息

    开始 今天我们开始第三课,来说一些如何读取网络的proto信息,所以我们又要插上一个小红旗: 今天的讲解和之前的不太一样, 之前的都是讲类的实现.今天更加侧重讲解函数处理流程.让我们开始吧. 作用 当 ...

  10. 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. 优 ...

最新文章

  1. python使用heapq快速查找最大或最小的 N 个元素
  2. 迭代器模式和组合模式混用
  3. sparse double型矩阵转为full矩阵
  4. 2021-11-13包装类
  5. Oracle RAC 客户端连接负载均衡(Load Balance)
  6. react实现全选和反选_全选的实现
  7. 信息学奥赛一本通(1144:单词翻转)
  8. 在Rayeager px2上搭建web服务器anmpp
  9. 个位数统计(java)
  10. Git学习笔记与IntelliJ IDEA整合
  11. 电脑的发展史_UI设计发展史及未来
  12. jQuery学习教程 基础篇 归档
  13. 2021-08-20 Redis 基本类型:string set sortedSet Hash List
  14. SSM框架下的注册验证
  15. 学校人脸识别门禁功能介绍
  16. 解决百度首页导航栏透明度问题
  17. 营收、净利双收,贝壳找房稳了?
  18. c++虚指针及相应对象的数据结构
  19. 论文阅读笔记《REDE: End-to-End Object 6D Pose Robust Estimation Using Differentiable Outliers Elimination》
  20. 使用Xamarin实现跨平台移动应用开发(转载)

热门文章

  1. stm32开发3D打印机(一)——介绍(已完成)
  2. STM32cubemx教程及STM32入门(一)
  3. 计算机考研复试之计算机网络
  4. html5在线加密,HTML源代码在线加密解密
  5. Navicat安装教程(超详细)
  6. 如何解决VC 应用程序无法启动,因为应用程序的并行配置不正确 sxstrace.exe问题...
  7. Android动画之属性动画
  8. Latex入门简明教程
  9. Word 复制或编辑公式就卡死
  10. Qt三方库开发技术:Qt应用内部打开PDF文件