首页 > 编程语言 > 详细

json文件操作及Python参数化

时间:2019-11-21 11:21:57      阅读:236      评论:0      收藏:0      [点我收藏+]

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(person.txt, w) as json_file:
  json.dump(person_dict, json_file)

Python中的第三方模块parameterized进行参数化

  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)

 

 

json文件操作及Python参数化

原文:https://www.cnblogs.com/xiaofanhong/p/11837259.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!