python迭代是什么意思_用python迭代json

我已经学了几个月的python了,在我自己的项目上开始了几门在线课程。我发现了一个有趣的网站,它提供了json格式的数据,我使用urllib库导入,使用json库进行解析,并最终希望将其插入到mysql数据库中。这个项目的第一部分和最后一部分工作,但不是解析部分。这是完整json文件的一部分:{

"total": 24555,

"results": {

"type": "FeatureCollection",

"features": [

{

"type": "Feature",

"geometry": null,

"id": "556897c8b9a2143b1187cf79",

"properties": {

"Expedition": "okavango_15",

"SpeciesName": "African Hoopoe",

"Count": 1,

"t_utc": 1325383950,

"t_created": 1432917960.344582,

"Member": "Maans",

"Taxonomy": {

"Kingdom": "Animalia",

"Species": "Upupa epops",

"Family": "Upupidae",

"Genus": "Upupa",

"Phylum": "Chordata",

"Order": "Upupiformes",

"Class": "Aves"

},

"FeatureType": "sighting",

"Images": [],

"DateTime": "2012-01-01T04:12:30+0200",

"EstimatedGeometry": null,

"Behavior": "Flying",

"Habitat": "Mioambo Woodland"

}

},

{

"type": "Feature",

"geometry": null,

"id": "556897b2b9a2143b1d14a807",

"properties": {

"Expedition": "okavango_15",

"SpeciesName": "Peregrine Falcon",

"Count": 1,

"t_utc": 1325406263,

"t_created": 1432917938.878641,

"Member": "Maans",

"Taxonomy": {

"Kingdom": "Animalia",

"Species": "Falco peregrinus",

"Family": "Falconidae",

"Genus": "Falco",

"Phylum": "Chordata",

"Order": "Falconiformes",

"Class": "Aves"

},

"FeatureType": "sighting",

"Images": [],

"DateTime": "2012-01-01T10:24:23+0200",

"EstimatedGeometry": null,

"Behavior": "Flying",

"Habitat": "Mioambo Woodland"

}

},

{

"properties": {

"SpeciesName": "Reed Cormorant",

"Count": 1,

"Accuracy": 8.0,

"Expedition": "okavango_13",

"t_created": 1430929467.352914,

"Member": null,

"FeatureType": "sighting",

"Altitude": 973.2047942238661,

"t_utc": 1378449600,

"DateTime": "2013-09-06T08:40:00+0200",

"Activity": "L",

"SightingId": 0

},

"geometry": {

"type": "Point",

"coordinates": [

22.345429148371103,

-19.018043140479318

]

},

"id": "554a403bb9a21401a231284f",

"type": "Feature"

}

]

},

"resolution": "full",

"filter": {

"FeatureType": "sighting"

},

"returned": 3,

"order": 1,

"limit": 3

}

为了解析json文件,我使用以下代码:

^{pr2}$

我想从中获取数据的级别是在“特征”中,它包含了动物目击事件,还有很多其他的关键字,如物种名称、时间戳、位置。不同的目击并不总是包含相同的键,例如位置并不总是存在的。我确实想通过观察来解析数据,因为我希望它是数据库中的一行。我可以通过使用这种代码调用每个单独的项来获取所需的每一位数据:results = data["results"]

for item in results["features"]:

value1 = item["id"]

value2 = item["properties"]["t_created"]

但这使得我的代码非常长,我想应该更容易迭代。但是,我不能为每一个键/值得到结果。我使用了.get函数、.values等,但事实证明,并非json文件中的每个级别都是字典,而是列表。例如,如果我运行以下代码:print type(data)

data2 = data["results"]

print type(data2)

data3 = data2["features"]

print type(data3)

我的结果是:

键入“dict”

键入“dict”

键入“list”

如何迭代原始json加载并通过观察解析数据?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值