plpython3u+pgsql解析json

将之前的python代码部署在plpython3u上面,直接上代码吧,因为没有管理员权限,所以我就直接用表做操作了

create or replace function get_json_by_python(origin_file text,layers int)
returns void 
language plpython3u
as $$
import re
import json as js
plpy.execute("truncate public.json_result;")
def get_json_nums_of_layers(file_path):
    fo=open(file_path,'r',encoding='utf-8')
    jsonstr = fo.read()#将json作为整个的字符串读取进去
    pos1=list()#用于存放
    for m in re.finditer('{', jsonstr):
        pos1.append(m.start())
    pos2=jsonstr.find('}')
    for i in range(len(pos1)):
        if pos1[i]>pos2:
            return i
        else:
            return len(pos1)
    fo.close()
 
def get_json(file_path,nums_layer_toget):
    s=''#s是用于放字段名的
    v=''#v用于放记录的
    if(nums_layer_toget>get_json_nums_of_layers(file_path)):
        plpy.execute("raise notice '所要解析的层数超过该json拥有的层数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值