轻量数据交换json,xml,ini
json语法:
object {string:value,...}
value string/number/object/array/true/false/null
array value
具体http://json.org/
举例:
{
"yuzusoft":
{
"birthYear": "2006",
"cross":[
"こぶいち",
"むりりん"
],
"country":"japan",
"job":"galgame",
"works":[
"天神乱漫",
"dracu-riot!"
]
},
"favorite":{
"birthYear":"2004",
"cross":["司田カズヒ","GT","なつめえり"],
"country":"japan",
"job":"galgame",
"works":[
"星空のメモリア",
"いろとりどりのセカイ",
"いろとりどりのヒカリ"
]
}
}
json只支持双引号
python的json模块
def load(fp, cls=None, object_hook=None, parse_float=None,
parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
#load从文件流中读
def loads(s, encoding=None, cls=None, object_hook=None, parse_float=None,
parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
#loads可以读作load string,从字符串读取,转成列表或字典
def dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True,
allow_nan=True, cls=None, indent=None, separators=None,
default=None, sort_keys=False, **kw)
#dumps可以理解为dump to string,对象转成字符串,对象可以是字典,列表等
#ensure_ascii 如果对象中有中文或日文,要定义ensure_ascii=False def dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True,
allow_nan=True, cls=None, indent=None, separators=None,
default=None, sort_keys=False, **kw)
#dump可以理解为dump to file
import json
temp={}
with open("Read.json","r",encoding="utf-8") as Rstream:
temp=json.loads(Rstream.read())
print(temp)
with open("Write.json","w",encoding="utf-8") as Wstream:
json.dump(temp,Wstream,ensure_ascii=False)
pickle模块
class TempClass(object):
def __init__(self):
self.show()
def show(self):
print("This is the text Class") temp=TempClass() with open("Read.pkl","wb") as Wstream:
pickle.dump(temp,Wstream)
with open("Read.pkl","rb") as Wstream:
temp2=pickle.load(Wstream)
print(temp2.show())
xml语法:
xml开头要有<?xml version="1.0" encoding="UTF-8" ?>
xml从一个根元素开始,就像linux的目录结构一样
xml的根节点,子节点,标签,属性,值
<?xml version="1.0" encoding="UTF-8" ?>
<galgame_company>
<yuzusoft>
<birthYear>2006</birthYear>
<cross_group>
<cross1>こぶいち</cross1>
<cross2>むりりん</cross2>
</cross_group>
<country>japan</country>
<job>galgame</job>
<works_group>
<works1>天神乱漫</works1>
<works1>dracu-riot!</works1>
</works_group>
</yuzusoft>
<favorite>
<birthYear>2004</birthYear>
<cross_group>
<cross1>司田カズヒ</cross1>
<cross2>GT</cross2>
<cross3>なつめえり</cross3>
</cross_group>
<country>japan</country>
<job>galgame</job>
<works_group>
<works>星空のメモリア</works>
<works>いろとりどりのセカイ</works>
<works>いろとりどりのヒカリ</works>
</works_group>
</favorite>
</galgame_company>
xml模块:
思路:首先要把xml从文件中解析出来,然后从找到根节点,然后就能往下读
修改:找到标签,修改属性,修改值,添加删除标签
创建:先创建根节点,然后再根节点上创建标签
import xml.etree.ElementTree as ET
xmlTree=ET.parse("Read.xml") #先解析文件
root=xmlTree.getroot() #拿到根节点
#遍历节点
for company in root:
print("-->",company.tag,company.attrib)
for item in company:
print("\t-->",item.tag)
configparse模块:
[client]
port = 3306
socket = /data/3306/mysql.sock [mysqld]
user = mysql
port = 3306
socket = /data/3306/mysql.sock
basedir = /application/mysql
datadir = /data/3306/data
查看
读(最重要):
import configparser
#定义configparse对象
config=configparser.ConfigParser()
config.read("my.cnf")
print(config.sections())
for section in config: #遍历section
print(section)
for key in config[section]: #遍历key
print("--->%s=%s"%(key,config[section][key]))
写:
#定义configparse对象
config=configparser.ConfigParser()
config['client']={"port":"","socket":"/data/3306/mysql.sock"}
config['mysqld']={"user":"mysql","port":3306,"socket":"/data/3306/mysql.sock"}
config['mysqldump']={"max_allowed_packet":"2M"}
with open("my,cnf","w") as Wtf:
config.write(Wtf)
轻量数据交换json,xml,ini的更多相关文章
- 数据交换格式XML和JSON对比
1.简介: XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组 ...
- CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)
继上一版本V1.3版本发布到现在,时隔N天了:[V1.3版本开源见:CYQ.Data 轻量数据层之路 华丽V1.3版本 框架开源] N天的时间,根据各路网友的反映及自身的想法,继续修改优化着本框架,力 ...
- CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三)----002
原文链接:https://blog.csdn.net/cyq1162/article/details/53303390 前言说明: 本篇继续上一篇内容,本节介绍所有相关查询的使用. 主要内容提要: 1 ...
- CYQ.Data 轻量数据层之路 使用篇-MProc 存储过程与SQL 视频[最后一集] H (二十八)
2019独角兽企业重金招聘Python工程师标准>>> 说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 使用篇五曲 MProc 存储过程与SQL(十六) 的附加视 ...
- Java 常见数据交换格式——xml、json、yaml
目录 数据交换格式介绍 XML 使用DOM方式解析 使用SAX方式解析 使用DOM4J方式解析 使用JDOM方式解析 JSON 使用JSONObject方式将数据转换为JSON格式 利用JSONObj ...
- Web Scraper——轻量数据爬取利器
日常学习工作中,我们多多少少都会遇到一些数据爬取的需求,比如说写论文时要收集相关课题下的论文列表,运营活动时收集用户评价,竞品分析时收集友商数据. 当我们着手准备收集数据时,面对低效的复制黏贴工作,一 ...
- yii2解析非x-www-form-urlencoded类型的请求数据(json,xml)
组件配置添加: 'request' => [ 'parsers' => [ 'application/json' => 'yii\web\JsonParser', 'applicat ...
- 常用两种数据交换格式之XML和JSON的比较
目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...
- XML和JSON两种数据交换格式的比较
在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...
随机推荐
- BackTrack5-r3硬盘安装
用Universal-USB-Installer-1.9.4.2这个工具,选择系统类型为Backtrack5 R3,选择Backtrack5 R3系统的ISO文件,然后选中U盘盘符,点击”Create ...
- lua class(table)
自己看吧: Base = {x = 0,y = 0} ---原型表 Base.name = "luohai"Base.age = 22Base.sex = "man&qu ...
- html随记
姓名输入框:<input type="text" value="默认有值"/> 密码输入框:<input type="text&qu ...
- LeetCode() 数字1的个数
int ones = 0; for (long m = 1; m <= n; m *= 10) { long a = n/m, b = n%m; ones += (a + 8) / 10 * m ...
- javac
http://openjdk.java.net/groups/compiler/ http://crazyjavahacking.org/tag/javac/ http://openjdk.java. ...
- Nginx 下配置SSL证书的方法
1.Nginx 配置 ssl 模块 默认 Nginx 是没有 ssl 模块的,而我的 VPS 默认装的是 Nginx 0.7.63 ,顺带把 Nginx 升级到 0.7.64 并且 配置 ssl 模块 ...
- js中的this指针(三)
当一个函数并非一个对象的忏悔时,它会被当作一个函数来调用. 此时,函数中的 this 指针被绑定到了全局对象. 后果:方法不能利用内部函数来帮助工作,由于 this 被绑定了错误的值,将无法共享该方法 ...
- [Spring MVC] - SpringMVC的各种参数绑定方式
SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码: @RequestMapping("saysth.do") publi ...
- 字符数组,字符指针,字符串常量,以及sizeof的一些总结
1.以字符串形式出现的,编译器都会为该字符串自动添加一个\0作为结尾 如在代码中写"abc",编译器帮你存储的是"abc\0". 2.数组的类型是由该数组所存放 ...
- Python Mysql 篇
Python 操作 Mysql 模块的安装 linux: yum install MySQL-python window: http://files.cnblogs.com/files/wupeiqi ...