猿问

另一个Python遍历JSON数组

我花了几个小时,尝试了所有在网上找到的东西,拔掉了我头上剩下的一些头发……我将此JSON发送到了我正在编写的Flask网络服务中:


{'jsonArray': '[

    {

        "nom":"0012345679",

        "Start":"2018-08-01",

        "Finish":"2018-08-17",

        "Statut":"Validee"

    },

    {

        "nom":"0012345679",

        "Start":"2018-09-01",

        "Finish":"2018-09-10",

        "Statut":"Demande envoyée au manager"

    },

    {

        "nom":"0012345681",

        "Start":"2018-04-01",

        "Finish":"2018-04-08",

        "Statut":"Validee"

    },

    {

        "nom":"0012345681",

        "Start":"2018-07-01",

        "Finish":"2018-07-15",

        "Statut":"Validee"

    }

    ]'}

我只想遍历记录:


app = Flask(__name__)


@app.route('/graph', methods=['POST'])

def webhook():


    if request.method == 'POST':

        req_data = request.get_json()

        print(req_data) #-> shows JSON that seems to be right

        ##print(type(req_data['jsonArray']))

        #j1 = json.dumps(req_data['jsonArray'])

        #j2 = json.loads(req_data['jsonArray'])

        #data = json.loads(j1)

        #for rec in data:

        #    print(rec) #-> This seems to consider rec as one of the characters of the whole JSON string, and prints every character one by one

        #for key in data:

        #     value = data[key]

        #     print("The key and value are ({}) = ({})".format(key, value)) #-> TypeError: string indices must be integers



        for record in req_data['jsonArray']:

            for attribute, value in rec.items(): #-> Gives error 'str' object has no attribute 'items'

                print(attribute, value)

我相信我在JSON对象,python dict对象,字符串之间迷路了,但我不知道自己缺少什么。我确实试图将通过json.dumps和json.loads方法接收到的JSON放入,但仍然没有。我想念什么??


我只想遍历每条记录以创建另一个python对象,然后将其馈送到图表库中,如下所示:


df = [dict(Task="0012345678", Start='2017-01-01', Finish='2017-02-02', Statut='Complete'),

      dict(Task="0012345678", Start='2017-02-15', Finish='2017-03-15', Statut='Incomplete'),

      dict(Task="0012345679", Start='2017-01-17', Finish='2017-02-17', Statut='Not Started'),


犯罪嫌疑人X
浏览 469回答 1
1回答

慕村9548890

整个内容都用单引号引起来,这意味着它是一个字符串,您需要对其进行解析。for record in json.loads(req_data['jsonArray']):查看您的注释代码,您执行了以下操作:j1 = json.dumps(req_data['jsonArray']) data = json.loads(j1)使用json.dumps上的绳子是错误的想法,而且json.loads(json.dumps(x))只是一样x,使刚刚得到了你回到开始的地方,即data是同样的事情req_data['jsonArray'](字符串)。这是正确的想法:j2 = json.loads(req_data['jsonArray'])但是你从来没有用过j2。如您所见,遍历字符串会为您提供字符串的每个字符。
随时随地看视频慕课网APP

相关分类

Python
我要回答