Python解析Json文件的案例
摘要:什么是json?如何用Python解析json文件呢?本文将介绍一种方案。
一、什么是json
- JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
- JSON 是轻量级的文本数据交换格式
- JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
- JSON 具有自我描述性,更易理解
- JSON 是存储和交换文本信息的语法,类似 XML。
- JSON 比 XML 更小、更快,更易解析。
二、Python3中提供的方法
2.1 json.dumps()
- json.dumps对数据进行编码,将 Python 对象编码成 JSON 字符串
No. | Python | JSON |
1 | dict | object |
2 | list, tuple | array |
3 | str | string |
4 | int, float, int- & float-derived Enums | number |
5 | TRUE | TRUE |
6 | FALSE | FALSE |
7 | None | null |
2.2 json.loads():
- json.loads对 JSON数据进行解码,返回Python 字段的数据类型
No. | JSON | Python |
1 | object | dict |
2 | array | list |
3 | string | str |
4 | number (int) | int |
5 | number (real) | float |
6 | TRUE | TRUE |
7 | FALSE | FALSE |
8 | null | None |
2.3 Example
#!/usr/bin/env python3
import os
import re
import sys
import time
import threading
import json
import pprint
def resolveJson(path):
with open(path, "rb") as f:
fileJson = json.load(f)
field = fileJson["field"]
futures = fileJson["futures"]
type = fileJson["type"]
name = fileJson["name"]
time = fileJson["time"]
return (field, futures, type, name, time)
if __name__ == "__main__":
resolveJson(soc_test.json)
三、json在SoC验证中的应用
3.1 用json描述testlist
{
"design": "soc",
"suit": "chip",
"arc": {
"prerequisites": {
"common": {
"sim_run_args": [
"+LIB_SIM"
]
}
},
"test": {
"soc_test_base": {
"owner": "",
"conf": "",
"sim_run_args": [
],
"loop_num": "",
"feature": [
],
},
"soc_reg_test": {
"owner": "",
"conf": "",
"sim_run_args": [
],
"loop_num": "",
"feature": [
],
}
}
}
}
3.2 用json描述filelist
{
"tb": "soc",
"root_path": {
}
"view": {
}
"package": {
}
}