+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-07(6)

2019-08(116)

2019-09(98)

2019-10(17)

2019-11(5)

python 遍历json、字典dict,替换value

发布于2020-09-10 22:29     阅读(15)     评论(0)     点赞(14)     收藏(5)


0

1

2

3

4

        接口自动化测试时,有时候请求体(json格式)是固定的,每次请求只想替换请求体中的某个key的值,需要遍历并替换调,例如注册接口,每次手机号或者用户名不能重复,那么请求前需要动态替换手机号或者用户名。上代码,举例替换值为空:

  1. class RepalceJsonValue:
  2. """
  3. 替换指定key的value为空
  4. """
  5. def __init__(self, goal_key):
  6. self.goal_key = goal_key
  7. def _is_dict(self, o):
  8. for key, value in o.items():
  9. if key == self.goal_key:
  10. o[key] = ""
  11. else:
  12. self.get_re(value)
  13. def _is_list(self, o):
  14. for i in o:
  15. self.get_re(i)
  16. def get_re(self, o):
  17. if isinstance(o, dict):
  18. self._is_dict(o)
  19. elif isinstance(o, list):
  20. self._is_list(o)
  21. if __name__ == '__main__':
  22. aa = {
  23. "interface_body_format": {
  24. "a": 1
  25. },
  26. "aaa": 3,
  27. "bbb": [1, 2],
  28. "ccc": [{
  29. "ddd": 4
  30. }]
  31. }
  32. # 替换interface_body_format 的值为空:
  33. rjv = RepalceJsonValue("interface_body_format")
  34. rjv.get_re(aa)
  35. 返回结果====>>{'interface_body_format': '', 'aaa': 3, 'bbb': [1, 2], 'ccc': [{'ddd': 4}]}
  36. # 替换ddd 的值为空:
  37. rjv = RepalceJsonValue("ddd")
  38. rjv.get_re(aa)
  39. 返回结果====>>{'interface_body_format': {'a': 1}, 'aaa': 3, 'bbb': [1, 2], 'ccc': [{'ddd': ''}]}

完毕~

0

1

2

3

4

5

6

7

8



所属网站分类: 技术文章 > 博客

作者:python是我的菜

链接: https://www.pythonheidong.com/blog/article/516666/2abe617ad224853e29c0/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

14 0
收藏该文
已收藏

评论内容:(最多支持255个字符)