乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
python 3.09 yaml json xmltodict 模块
2017-01-22 23:38:46
97
0
0
admin
> 这里介绍用python 的 yaml模块,json模块,xml模块 #yaml yaml文件 ``` [root@hadoop1 python]# cat yaml var: "i am a string" array1: ["1","2","3"] array2: &array2_alias #this is allias - "lala" - "wawa" - "haha" hash1: { "a":"b","c":"d" } hash2: "e": "f" "z": *array2_alias #use the alias ``` 脚本 ``` [root@hadoop1 python]# cat a.py #!/usr/bin/python import yaml,sys file_object = file("./yaml","r") try: data = yaml.load(file_object) #data = list(yaml.load_all(file_object)) 可以解析一个文件下的多个yaml 文档 #safe_load safe_load_all safe_dump safe_dump_all 可以只处理标准yaml数据,不处理python对象,推荐使用 except yaml.YAMLError, msg: print "Error in yaml:", msg sys.exit(1) print data print "--------------------" print yaml.dump(data) ``` 结果 ``` [root@hadoop1 python]# ./a.py {'var': 'i am a string', 'array2': ['lala', 'wawa', 'haha'], 'array1': ['1', '2', '3'], 'hash1': {'a': 'b', 'c': 'd'}, 'hash2': {'z': ['lala', 'wawa', 'haha'], 'e': 'f'}} -------------------- array1: ['1', '2', '3'] array2: &id001 [lala, wawa, haha] hash1: {a: b, c: d} hash2: e: f z: *id001 var: i am a string ``` *** #JSON ``` #!/usr/bin/python import json try: fp_w = file("./write_json","w") fp_r = file("./read_json","r") json_object=json.load(fp_r) #从文件读取,返回Python json 对象 print json_object json.dump(json_object,fp_w) #把json 字符串写入文件 print "----" var = '{"a":1,"b":[1,2,3]}' json_object=json.loads(var) #从变量读取,返回Python json 对象 print json_object result = json.dumps(json_object) #返回json 字符串 print result except Exception,msg: print msg ``` **命令行处理json** ``` [root@hadoop1 python]# echo '{"a": 1, "b": [1, 2, 3]}' | python -m json.tool { "a": 1, "b": [ 1, 2, 3 ] } ``` *** #XML > xmltodict 把xml 转换成 OrderedDict XML文件 ```xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop1:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/app/hadoop/tmp</value> </property> </configuration> ``` 脚本 ```python #!/usr/bin/python import sys,xmltodict,json the_hash = xmltodict.parse(open(sys.argv[1],'r').read()) print type(the_hash) print the_hash print json.dumps(the_hash) ``` 运行结果 ``` [root@test1 leo]# ./xml2dict.py hadoop.xml <class 'collections.OrderedDict'> OrderedDict([(u'configuration', OrderedDict([(u'property', [OrderedDict([(u'name', u'fs.default.name'), (u'value', u'hdfs://hadoop1:9000')]), OrderedDict([(u'name', u'hadoop.tmp.dir'), (u'value', u'/app/hadoop/tmp')])])]))]) {"configuration": {"property": [{"name": "fs.default.name", "value": "hdfs://hadoop1:9000"}, {"name": "hadoop.tmp.dir", "value": "/app/hadoop/tmp"}]}} ```
上一篇:
python 3.08 getopt 模块
下一篇:
python 3.10 hashlib 模块
文档导航