json⽂件操作及Python参数化
python json字符串转数组1. json 介绍
  JSON (JavaScript Object Notation) 是很常⽤的表⽰数据结构规范,web应⽤中常作服务器间传输和接收的数据格式。  要处理JSON (字符串或包含json对象的⽂件), 需要使⽤Python 的 json 模块,因此使⽤前需要先导⼊该模块:
    import json
2. 解析json
  1. 可以使⽤ json.loads() ⽅法解析json,其返回字典类型。
  2. 也可以使⽤json.load()⽅法读json⽂件。
  3. 可以通过json.dumps()⽅法转换字典类型为json字符串。
  4. 使⽤json.dump()⽅法写json⾄⽂件。
1.1⽰例:
import json
person = '{"name": "Bob", "languages": ["English", "Fench"]}'
person_dict = json.loads(person)
print(type(person))
# Output: {'name': 'Bob', 'languages': ['English', 'Fench']}
print(person_dict)
# Output: ['English', 'French']
print(person_dict['languages'])
print(type(person_dict))
  返回结果如下所⽰,这⾥person是字符串类型,⽽person_dict是字典类型。
2.1 load()⽅法读取json⽂件
with open("datajson.json") as f:
d = json.load(f)
print(d)
  返回信息如下
3.1 可以通过json.dumps()⽅法转换字典类型为json字符串。
person_dict = {'name': 'Bob',
'age': 12,
'children': None
}
print(person_dict)
person_json = json.dumps(person_dict)
# Output: {"name": "Bob", "age": 12, "children": null}
print(person_json)
4.1 使⽤json.dump()⽅法写json⾄⽂件
import json
person_dict = {"name": "Bob",
"languages": ["English", "Fench"],
"married": True,
"age": 32
}
with open('', 'w') as json_file:
json.dump(person_dict, json_file)
Python中的第三⽅模块parameterized进⾏参数化  parameterized 模块为python重的第三⽅模块使⽤前需要先进⾏安装 pip install parameterized
  作⽤: 解决同⼀条⽤例不同数据间的数据驱动问题
 使⽤第⼀种⽅式可直接进⾏传参
class Add(unittest.TestCase):
"""第⼀种⽅法"""
@pand([(1, 2, 3), (2, 3, 5)])
def test_add(self, a, b, c):
num = a+b
self.assertEqual(num, c)
注意:expand参数后最外层必须为列表,列表内可嵌套列表或元组
使⽤第⼆种⽅式可直接进⾏传参
  将参数赋值给变量,使⽤时直接传⼊变量
data = [(1, 2, 3), (2, 3, 5)]
class Add(unittest.TestCase):
# """第⼀种⽅法"""
# @pand([(1, 2, 3), (2, 3, 5)])
# def test_add(self, a, b, c):
#    num = a+b
#    self.assertEqual(num, c)
"""第⼆种⽅法"""
@pand(data)
def test_add1(self, a, b, c):
num = a + b
self.assertEqual(num, c)
读取Json⽂件传⼊参数
  读取json⽂件
import json
def read_data():
with open("datajson.json") as f:
d = json.load(f)
d_list = []
print(d)
for i in d.values():
for e in i.values():
d_list.append((("a")),
("b")),
("c"))))
return d_list
class Add(unittest.TestCase):
# """第⼀种⽅法"""
# @pand([(1, 2, 3), (2, 3, 5)])
# def test_add(self, a, b, c):
#    num = a+b
#    self.assertEqual(num, c)
# """第⼆种⽅法"""
# @pand(data)
# def test_add1(self, a, b, c):
#    num = a + b
#    self.assertEqual(num, c)
"""读取json⽂件传⼊参数"""
@pand(read_data())
def test_add1(self, a, b, c):
num = a + b
self.assertEqual(num, c)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。