参考文档:

文档link
json在线校验工具

http://www.bejson/

json格式详解http://www.json/json-zh.html
菜鸟教程-python json库http://www.runoob/python/python-json.html

python json.dumps() json.dump()的区别

https://wwwblogs/wswang/p/5411826.html

Python中报错TypeError: must be str, not bytes

https://blog.csdn/killvoon/article/details/50845909

 

学习笔记:

 

json 类型转换到 python 的类型对照表:

jsonpython
objectdict
arraylist
stringunicode
number (int)int, long
number (real)float
trueTrue
falseFalse
nullNone

 

json库的函数:

json.loads()

将已编码的 JSON 字符串解码为 Python 对象

将str转化成dict格式

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

 

json.dumps()

将 Python 对象编码成 JSON 字符串

将dict转化成str格式

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

 

json.load()

从文件对象将已编码的 JSON 字符串解码为 Python 对象

fp = open(file, 'r')
json.loads(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

 

json.dump()

将 Python 对象编码成 JSON 字符串,并存入文件

Serialize ``obj`` as a JSON formatted stream to ``fp``

fp = open(file, 'w')

dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding='utf-8', default=None, sort_keys=False, **kw)

 

 

*实际使用时发现在本机上,读取文件需用utf-8编码,在abox上需用二进制编码,详见https://blog.csdn/killvoon/article/details/50845909

eg:修改data receiver的配置文件locDataReceiver.json

import io
import json
 
with io.open(config_path, 'rb') as f:
    json_file = json.loads(f.read())
   # json_file = json.load(f)
    f.close()
    json_file['sensor'][0]['inputCfg']['directory'] = input_data
    json_file['sensor'][4]['inputCfg']['contiCameraInputCfg']['ethAdapterName'] = port
with io.open(config_path, 'wb') as f:
    json.dump(json_file, f, sort_keys=True, indent=4, separators=(',', ': '))

 

更多推荐

Python json库