编程语言
首页 > 编程语言> > 【Python/Json】从Java SpringBoot程序提供的Rest服务里获取Json串并解读

【Python/Json】从Java SpringBoot程序提供的Rest服务里获取Json串并解读

作者:互联网

关于如何用SpringBoot程序提供Json串请参考:https://www.cnblogs.com/heyang78/p/15894885.html

【获取部分】

使用以下三行程序就能访问到Rest服务:

        request=urllib.request.Request('http://localhost:8080/fetchJson')
        with urllib.request.urlopen(request) as response:
            data=response.read()

而要将data变成可读的json还需要下面一步:

jsonStr=data.decode()

这样就获得了想要的json串:

{"status":true,"class":{"id":1,"name":"大一","students":[{"id":1,"name":"刘德华"},{"id":2,"name":"郭富城"},{"id":3,"name":"张学友"},{"id":4,"name":"黎明"}]}}

而解读利用字典就可以了,比如获得上面这个串的students节点,可以这么做:

root=json.loads(jsonStr)
students=root['class']['students']

而要取得每个学生的姓名,可以这样做:

for stu in students:
      print(stu['name'])

直白而快捷,极易上手。

 

最终将全部程序程序分享如下:

#encoding=utf-8
import urllib.request
import json

class JsonReader:
    def __init__(self,url):
        self.url=url

    def read(self):
        request=urllib.request.Request(self.url)
        with urllib.request.urlopen(request) as response:
            data=response.read()
            jsonStr=data.decode()

            # 获取根节点
            root=json.loads(jsonStr)
            students=root['class']['students']

            for stu in students:
                print(stu['name'])

url='http://localhost:8080/fetchJson'
reader=JsonReader(url)
reader.read();

输出:

C:\hy\py>python 03-jsonReader.py
刘德华
郭富城
张学友
黎明

 

END

 

标签:Java,SpringBoot,students,request,json,urllib,url,Json,name
来源: https://www.cnblogs.com/pyhy/p/15894899.html