JSON (JavaScript Object Notation) 是很常用的表示数据结构规范,web应用中常作服务器间传输和接收的数据格式。
要处理JSON (字符串或包含json对象的文件), 需要使用Python 的 json 模块,因此使用前需要先导入该模块:
import 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(‘person.txt‘, ‘w‘) as json_file: json.dump(person_dict, json_file)
parameterized 模块为python重的第三方模块使用前需要先进行安装 pip install parameterized
作用: 解决同一条用例不同数据间的数据驱动问题
使用第一种方式可直接进行传参
class Add(unittest.TestCase): """第一种方法""" @parameterized.expand([(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): # """第一种方法""" # @parameterized.expand([(1, 2, 3), (2, 3, 5)]) # def test_add(self, a, b, c): # num = a+b # self.assertEqual(num, c) """第二种方法""" @parameterized.expand(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((int(e.get("a")), int(e.get("b")), int(e.get("c")))) return d_list
class Add(unittest.TestCase): # """第一种方法""" # @parameterized.expand([(1, 2, 3), (2, 3, 5)]) # def test_add(self, a, b, c): # num = a+b # self.assertEqual(num, c) # """第二种方法""" # @parameterized.expand(data) # def test_add1(self, a, b, c): # num = a + b # self.assertEqual(num, c) """读取json文件传入参数""" @parameterized.expand(read_data()) def test_add1(self, a, b, c): num = a + b self.assertEqual(num, c)
原文:https://www.cnblogs.com/xiaofanhong/p/11837259.html