json 的简单应用
今天做爬虫时的一点盲区 :字符串, 字典,写到同一个文件中。难以利用!
比如这样的数据:
str = “hi,budy. i like 52pojie!”
dirt = {“陈墨”:["男",“22”]}
一、保存到txt文件
|
1
2
3
|
with open("text.txt","w") as f: f.write(str) #write()只能保存string f.write(str(dirt)) |
这样读出来,怎么读都是字符串。dirt难以利用。
二、保存到json数据,json.load 和 json.dump的使用
|
1
2
|
with open( "a.json", "w") as f: json.dump(str,f) json.dump(dirt,f) |
读取时使用json。dump(),这样会产生错误,一个是字符串,一个是字典。一起读数据数据类型不统一。
那就分开读,也就是第三种方式:
三、,json.load 和 json.dump+json.loads()的使用
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import jsondef read_json(): with open("a.json", "r") as f: #每一行为一个列表的元素,各行独立 data = f.readlines() for dat in data: #去掉行后的空白,换行或者回车 dat = dat.rstrip() #利用json.loads()恢复每一行的保存前数据类型, dir = json.loads(dat) #打印数据类型 print(type(dir)) print(dir)def write_json(): with open( "a.json", "w") as f: str = [1,2,5,3,4,5] json.dump(str,f) #每行后换行,保证每条数据相互独立。 f.write("\n") str ={11:22,33:44} json.dump(str,f) f.write("\n") str = "hello budy!" json.dump(str,f) #这样会产生比较多的空间浪费。每行有可能不到一半,if __name__ == "__main__": write_json() read_json() |
这样做,以我目前的水平来说,方便了很多,保存的数据很方便就可以按照他原来的数据类型去使用。但是产生的空间浪费也很多,
比如一行100个字节,可能就用了10个字节
json 的简单应用的更多相关文章
- json-lib简单处理json和对json的简单介绍
JSON 1.json是什么? *它是js提供的一种数据交换格式 2.json的语法 *{}:是对象! >属性名必须使用双引号括起来!单引号不行!!! >属性值: *null *数值 *数 ...
- js中json数据简单处理(JSON.parse()和js中嵌套html)
js中json数据简单处理(JSON.parse()和js中嵌套html) 一.总结 1.html中嵌套js:<script>js代码</script> 2.js中嵌套html ...
- Python中json的简单读写操作
Python中json的简单读写操作 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的 ...
- golang json 包简单分析
首先上代码: func main() { b := true a1, _ := json.Marshal(b) a2, _ := Marshal(b) fmt.Println(string(a1)) ...
- JSON.NET 简单的使用
JSON.NET(http://json.codeplex.com/)使用来将.NET中的对象转换为JSON字符串(序列化?),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?) 首先为 ...
- android json 解析 简单示例
1 下面是一个简单的json 解析的demo,废话不多说,直接上代码 package com.sky.gallery; import java.io.ByteArrayOutputStream; im ...
- Android+Servlet+MySql+JSON实现简单的数据查询操作--C/S架构
本例简单地实现Android客户端与服务器端交互,主要是通过客户端输入内容(学号)提交到服务器端,服务器端与数据库交互去查询相应信息(姓名).根据这个做个完整的安卓登录是没问题的.本例数据库服务器都采 ...
- java post请求的表单提交和json提交简单小结
在java实现http请求时有分为多种参数的传递方式,以下给出通过form表单提交和json提交的参数传递方式: public String POST_FORM(String url, Map< ...
- JSON的简单介绍以及C语言的JSON库使用
JSON概述 JSON: JavaScript 对象表示法( JavaScript Object Notation) .是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON采 ...
- Struts2+json+hignchart(简单柱状图实现--适合jquery小白)
做了一个简单的基于Struts2 + Json + HighChart的小例子,费了一下午+晚上的时间,虽然简单,但对于我这种Jquery+Ajax小白的人还是很值得记录的. 哈哈哈 # 0. 关键点 ...
随机推荐
- CentOS安装Netdata进行系统监控
偶然间在知乎看到了Netdata这个东西 看到它华丽的界面 顿时心动 gkd gkd #准备 yum install autoconf automake curl gcc git libmnl-dev ...
- tableau日常管理
各文件位置: https://help.tableau.com/current/server-linux/zh-cn/cli_default_filepaths_tsm.htm ldap配置: htt ...
- 【Linux 网络编程】滑动窗口协议
<1>通知接受窗口(rwnd): 预防应用程序发送的数据超过对方的缓冲区.接收方使用的流量控制<2>拥塞窗口(cwnd): 预防应用程序发送的数据超过网络所承受的能力.发送方使 ...
- laravel框架之及時更改
public function ajaxxiu(request $request) { $id = $request->post('id'); $fd = $request->post(' ...
- laravel框架之修改
//控制器層 public function update(request $request) { $id = $request->get('id'); $data = DB::select(& ...
- DNS服务器搭建笔记
DNS在linux服务器上的服务名是named,而named服务依赖软件bind. 环境: 系统版本:VBOX虚拟机centos6.0. 本机内网IP 192.168.2.198. ...
- 20.AutoMapper 之理解你的映射(Understanding Your Mappings)
https://www.jianshu.com/p/4f5c14fbf1c2 理解你的映射(Understanding Your Mappings) AutoMapper 为你的映射创建执行计划.在调 ...
- qt嵌入式html和本地c++通信方式
前沿:我们在做qt项目的时候,通常会把某个html网页直接显示到应用程序中.比如绘图.直接把html形式的图标嵌入到应用程序中 但是我们需要把数据从后台c++端传到html端,实现显示.qt实现了相关 ...
- EL作用域对象
EL与jsp的作用域对象对应关系,,,,,及EL具体作用域对象介绍,如下
- 问题:Thymeleaf整合Spring Security后sec属性不起作用
可能原因: 版本不兼容,例如2.1.x的SpringBoot不兼容3.0.4的thymeleaf-extras-springsecurity4 解决方案: 修改Spring Boot的版本为2.0.x ...