为了账号安全,请及时绑定邮箱和手机立即绑定

另一个Python遍历JSON数组

另一个Python遍历JSON数组

犯罪嫌疑人X 2021-03-28 16:13:42
我花了几个小时,尝试了所有在网上找到的东西,拔掉了我头上剩下的一些头发……我将此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'),
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

整个内容都用单引号引起来,这意味着它是一个字符串,您需要对其进行解析。

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

如您所见,遍历字符串会为您提供字符串的每个字符。


查看完整回答
反对 回复 2021-04-09
  • 1 回答
  • 0 关注
  • 468 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信