Home  >  Q&A  >  body text

How to use python to extract fields from json files?

Now there is a json data, as follows:

{
"favourite":{

  "bkmrk":{
     "id1490843709594066":{
        "guid":"904eff52277f403b89f6410fe2758646.11",
        "lcate":"1"
     },
     "id1490843712805183":{
        "guid":"58457f60eca64025bc43a978f9c98345.16",
        "lcate":"2"
     },
     "id149084371467327":{
        "guid":"a0f907f9dc8b40f689b083f3eba7228b.16",
        "lcate":"3"
     },
     "id1490843716295393":{
        "guid":"eb75d929455e468bb712e7bc2025d11a.16",
        "lcate":"4"
     }
  }

}
}
How should I use python to operate this json to get the content in the following form:
"guid":"904eff52277f403b89f6410fe2758646.11"
"guid":"58457f60eca64025bc43a978f9c98345.16 "
"guid":"a0f907f9dc8b40f689b083f3eba7228b.16"
"guid":"eb75d929455e468bb712e7bc2025d11a.16"

習慣沉默習慣沉默2712 days ago698

reply all(2)I'll reply

  • 怪我咯

    怪我咯2017-05-18 10:55:08

    import json
    
    with open('json.txt', 'r') as fp:
        data = json.load(fp)
        print(data)

    dataThat’s what you want.

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-18 10:55:08

    import json
    a = '''{ "favourite":{
    
      "bkmrk":{
         "id1490843709594066":{
            "guid":"904eff52277f403b89f6410fe2758646.11",
            "lcate":"1"
         },
         "id1490843712805183":{
            "guid":"58457f60eca64025bc43a978f9c98345.16",
            "lcate":"2"
         },
         "id149084371467327":{
            "guid":"a0f907f9dc8b40f689b083f3eba7228b.16",
            "lcate":"3"
         },
         "id1490843716295393":{
            "guid":"eb75d929455e468bb712e7bc2025d11a.16",
            "lcate":"4"
         }
      }
    }
    }'''
    result = [{'guidi': i[1]['guid']} for i in json.loads(a)['favourite']['bkmrk'].iteritems()]
    print result 
    
    # 输出结果:
    [{'guidi': u'904eff52277f403b89f6410fe2758646.11'}, {'guidi': u'a0f907f9dc8b40f689b083f3eba7228b.16'}, {'guidi': u'eb75d929455e468bb712e7bc2025d11a.16'}, {'guidi': u'58457f60eca64025bc43a978f9c98345.16'}]

    reply
    0
  • Cancelreply