• python_json与pymsql模块


    一。json

    1.初识json

    json:全称(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

    辨认是否是json:类似与python中的dict

    1)通过在线json格式校验,判断是否是json

    2.json类型转换

    1)json数据格式与python某些模块不一致:

    python --->   json

    None --->null

    True --->true

    False --->false

    2)python中json数据转换

    1.引用

    import json

    把json的str数据转换为python字典:loads()

    json_str='{"mobile_phone":true,"password":null}'
    print(json.loads(json_str))
    运行结果:

     把python中的dict转换为json:dumps()

    python_dict={'mobile_phone': None, 'password': False}
    print(json.dumps(python_dict))
    运行结果:

     使用场景探讨:

    1)excel:若把接口请求数据放在xlsx后缀文件中,读取的数据为str格式,无法直接作为参数进行传递 使用python中的eval()可以拿到数据本来的格式,但是数据若为json格式(null,true,false)命名规则就会报错。如图:

    python_eval='{"mobile_phone":true,"password":null}'
    print(eval(python_eval))
    运行结果:

    二。pymysql

    1.安装

    pip install pymysql

    2.引用

    import pymysql

    3.使用

    1)建立连接conn=pymysql.connect(

        host="",#连接地址
    port=3306,#端口号
    user="",#连接名字
    password="",#密码
    charset="utf8",#数据格式
    cursorclass=DictCursor #返回数据格式为dict
    )

    2)建立游标

    cursor=conn.cursor()
    print(cursor)
    运行结果:

    3)执行sql

    sql_data="select * from futureloan.member limit 5;"
    cursor.execute(query=sql_data)

    4)返回数据

    #获取数据,获取满足条件的一条数据
    print(cursor.fetchone())
    运行结果:

    #获取满足条件的所有数据
    print(cursor.fetchall())
    运行结果:

    5)关闭连接

    #关闭游标
    cursor.close()
    #关闭连接
    conn.close()

    6)注意
    1 -- >一个游标只能执行一个sql语句,若需要执行多个sql语句 就多建立几个游标(游标1,游标2...)。
    2 -->游标使用完毕后记着关闭游标,获取一次数据后 不关闭游标再次获取数据,就会从第一次获取的结果出开始获取数据,例子:
    #把满足条件的数据全部获取
    print(cursor.fetchall())
    #获取全部数据后,不关闭游标继续获取单条数据,此时返回为None
    print(cursor.fetchone())
    运行结果:

     3 -->执行完数据库操作(如 插入,更新删除后)最好是关闭游标和关闭连接后,重新建立连接,创建游标进行搜索。

    4.与random库联合使用,生成数据库中没有的数据

     1)random

    random.choice(['11','xx','jj']) -->从‘11’,'xx','jj'中随机获取一个数值

    random.sample('12345',4)  -->从'12345'中输出一个4位随机组合的数值

    思考:

    随机生成的数据数据库中有时候也是存在的,如果有次情况的话还是需要继续生成数据的,问题来了怎么再生成数据 再生成的数据怎么知道数据库中存不存在?若不存在怎么为自己所用?怎么作用与测试用例中?

    解决:

    1.首先考虑while True,使用外循环不断进行数据生成,顺便也可以进行数据库比对,若不存在数据库的话返回该数据,使用break进行终止请求

    while True:
    phone_headler = random.choice(['13', '15', '18'])
    phone_w = "".join(random.sample('0123456789', 9))
    phone=phone_headler+phone_w
    #print(phone)
    if not cursor.execute(query="select * from futureloan.member where mobile_phone={};".format(phone)):
    print(phone)
    cursor.close()
    break
    运行结果:

     数据库搜索结果:

    2.进行数据替换。先进行思考,测试用例写在哪里,读取的数据是什么格式的,对于格式的替换数据方法可以使用什么。我这里使用的是slsx文件,读取的数据类型为str,以str为例进行初步替换:

    replace()

    data='{"mobile_phone":"#phone#","password":12345}'
    phone='18139702685'

    if "#phone#" in data:
    print(data.replace("#phone#",phone))
    运行结果:

     

    replace
  • 相关阅读:
    Matplotlib使用笔记
    python之enumerate
    初识matlab
    动态规划的解题思路是如何形成的
    【JVM】体系结构及其细节
    位运算的题目小结
    【JUC】死锁的实现及其定位分析
    【JUC】如何理解线程池?第四种使用线程的方式
    【JUC】实现多线程的第三种方式Callable
    可怜的实验鼠和小猪问题
  • 原文地址:https://www.cnblogs.com/newsss/p/13125468.html
Copyright © 2020-2023  润新知