标题:flask框架json数据的拿取和返回操作示例
作者:网友
日期:2020-07-28 13:53:16
内容:

本文实例讲述了flask框架json数据的拿取和返回操作。分享给大家供大家参考,具体如下:

json数据结构:以套票票网站的城市数据为例,拿到数据莫慌,

1 先分析数据结构,有几个大的字段(‘returnCode'和‘retuenValue'字段,只有一个字段作为定义,另一个字段作为保留(无需处理)

2 键表----> 拆分'returnValue‘确定数据库表结构,('A‘[]城市首字母表 和  城市具体信息字段{}表)

3 将拿到的数据拆分插入到数据库中

4 将数据库的数据以JSON 的形式返回给用户

(a)拿到的数据:

} "returnCode": "0", "returnValue": {  "A": [   {    "id": 3643,    "parentId": 0,    "regionName": "阿坝",    "cityCode": 513200,    "pinYin": "ABA"   },   {    "id": 3090,    "parentId": 0,    "regionName": "阿克苏",    "cityCode": 652901,    "pinYin": "AKESU"   },   {    "id": 3632,    "parentId": 0,    "regionName": "阿拉善",    "cityCode": 152900,    "pinYin": "ALASHAN"   },   {    "id": 899,    "parentId": 0,    "regionName": "安康",    "cityCode": 610900,    "pinYin": "ANKANG"   },   {    "id": 196,    "parentId": 0,    "regionName": "安庆",    "cityCode": 340800,    "pinYin": "ANQING"   },   {    "id": 758,    "parentId": 0,    "regionName": "鞍山",    "cityCode": 210300,    "pinYin": "ANSHAN"   },   {    "id": 388,    "parentId": 0,    "regionName": "安顺",    "cityCode": 520400,    "pinYin": "ANSHUN"   },   {    "id": 454,    "parentId": 0,    "regionName": "安阳",    "cityCode": 410500,    "pinYin": "ANYANG"   }  ],

B....C....D....Z省略其他大写字母开头的城市,以A开头的城市名为例

(b)表结构,建立外键models.py

from App.ext import db#定义城市名大写字母类,在数据的最外层class Letter(db.Model):  id = db.Column(db.Integer,primary_key =True,autoincrement=True)  letter = db.Column(db.String(8),unique=True,nullable=False)#定义城市类,嵌套层class City(db.Model):  id = db.Column(db.Integer,primary_key = True,autoincrement = True)  parentId = db.Column(db.Integer,nullable = False,defaut=0)  regionName = db.Column(db.String(30),nullable = False)  cityCode = db.Column(db.Integer)  pinYin = db.Column(db.String(128))  #建立外键‘首字母'  first_letter = db.Column(db.String(8),db.ForeignKey(Letter.letter))

(c)addcities.py插入数据:

from flask_restful.representations import jsonfrom sqlalchemy.dialects.mysql import pymysqldef add_cities():#链接数据库  db = pymysql.Connect(host= '10.0.118.135',user = 'root',password ='xxxxxxx',database = 'tpp6666',port = 3306)  cursor = db.cursor()  #读取拿到的数据,遍历数据  with open('citylist.json')as cl:    returnValue = json.load(cl).get('returnValue')    for key in returnValue:      for city in returnValue.get(key):         db.begin()         #插入数据,以每一个大写字母为一个字段插入,以字典的形式         cursor.execute(           'insert into city(id,parentId,regionName,cityCode,pinYin,first_letter) values({},{},"{}",{},"{}","{}");'.format(             city['id'], city['parentId'], city['regionName'], city['cityCode'], city['pinYin'], key))         db.commit()if __name__ == '__main__':  add_cities()


返回列表 网站首页