将组合的JSON键作为参数传递给函数的Pythonic方法

2024-06-16 10:19:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个小函数,成功地从JSON blob中提取数据。 blob包含列表和字典的混合体。 如果我硬编码键,那么从JSON blob访问值没有问题,但是将键作为元组传递是行不通的

有没有更好的方法将键传递给函数

目前我最好的想法是写一个提取函数并传递它。 这似乎太复杂了

简单的例子

import json

def do_stuff(datablob, mykeys):    

    data = json.loads(datablob)

    for entry in data:

        mydate = entry[u'timestamp'][0:10]
        mytime = entry[u'timestamp'][11:19]

        # this works
        founddata = entry[u'key1'][u'key2'][0][u'key3']

        # this fails 
        founddata = entry[mykeys]

        # do stuff with founddata



if __name__ == '__main__':

    with open('jsonblob.txt','r') as f1:

         mykeys = (u'key1',u'key2',0,u'key3')
         do_stuff(f1.read(), mykeys)

Tags: 函数jsondatathisdoblobtimestampkey1