一例tornado框架下利用python panda对数据进行crud操作

前端GET请求与后端数据处理
本文介绍了一个使用前端JavaScript发起GET请求的例子,详细展示了如何通过jQuery库调用后端接口并处理返回的JSON数据。同时,后端使用Python的Tornado框架接收请求参数,从MongoDB数据库中读取数据,并将DataFrame转换为JSON格式返回给前端。

 

  • get提交部分
<script>
         /* $("#postbtn").click(function () {
              $.ajax({
                  url:'/loaddata',
                  datatype:'json',
                  data:{"filename":$("#excelfile").val()},
                  success:function (data) {
                      console.log(JSON.parse(data))
                  }
              })
          })*/
         $("#postbtn").click(function () {
            $.get('/loaddata',{'filename':$("#excelfile").val()},function (data) {
          //ajax get请求的装逼写法$.get('响应请求的url',请求的数据,回调函数) console.log(data) },
'json') }) </script>
  • 相关RequestHandler
class loaddata(RequestHandler):
    def get(self):
        wenwa = self.get_argument('filename')
        client = MongoClient("localhost",27017)
        db = client['olddream'] //选取数据库
        cols = db['bloodtype']//选取集合
        data = DataFrame(list(cols.find()))//读取记录
        print(data)
        rets = data.to_json(orient="records")//把dataframe类型转为json格式数据
        self.write(json.dumps(rets))
  •  前端response数据形式(orient=“records”)
[{"_id":0,"bloodtype":"A"},
{"_id":1,"bloodtype":"B"},
{"_id":2,"bloodtype":"AB"},
{"_id":3,"bloodtype":"O"},
{"_id":4,"bloodtype":"RH"}]
  • DataFrame类型转为其他格式的方法
split,样式为 {index -> [index], columns -> [columns], data -> [values]}
records,样式为[{column -> value}, … , {column -> value}]
index ,样式为 {index -> {column -> value}}
columns,样式为 {index -> {column -> value}}
values,数组样式
table,样式为{‘schema’: {schema}, ‘data’: {data}},和records类似

下列部分引自

作者:huanbia 
来源:优快云 
原文:https://blog.youkuaiyun.com/huanbia/article/details/72674832

大致效果

df = pd.DataFrame([['a', 'b'], ['c', 'd']],
index=['row 1', 'row 2'],
columns=['col 1', 'col 2'])
###########
split
###########
df.to_json(orient='split')
>'{"columns":["col 1","col 2"],
"index":["row 1","row 2"],
"data":[["a","b"],["c","d"]]}'
###########
index
###########
df.to_json(orient='index')
>'{"row 1":{"col 1":"a","col 2":"b"},"row 2":{"col 1":"c","col 2":"d"}}'

###########
records
###########
df.to_json(orient='records')
>'[{"col 1":"a","col 2":"b"},{"col 1":"c","col 2":"d"}]'

###########
table
###########
df.to_json(orient='table')
>'{"schema": {"fields": [{"name": "index", "type": "string"},
{"name": "col 1", "type": "string"},
{"name": "col 2", "type": "string"}],
"primaryKey": "index",
"pandas_version": "0.20.0"},
"data": [{"index": "row 1", "col 1": "a", "col 2": "b"},
{"index": "row 2", "col 1": "c", "col 2": "d"}]}'

转载于:https://www.cnblogs.com/saintdingspage/p/10443025.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值