【问题标题】:Iterating Through a JSON file in python在python中遍历JSON文件
【发布时间】:2021-08-03 23:40:06
【问题描述】:

我有一个如下所示的 json 文件:

{
  "records": {
    "Dates": [
      "05-Aug-2021",
    ],
    "data": [
      {{
    "strikePrice": 15550,
    "expiryDate": "05-Aug-2021",
    "PE": {
      "strikePrice": 15550,
      "expiryDate": "05-Aug-2021",
      "underlying": "NIFTY",
      "identifier": "OPTIDXNIFTY05-08-2021PE15550.00",
      "openInterest": 15113,
      "changeinOpenInterest": -4644,
      "pchangeinOpenInterest": -23.50559295439591,
      "totalTradedVolume": 140006,
      
    },
    "CE": {
      "strikePrice": 15550,
      "expiryDate": "05-Aug-2021",
      "underlying": "NIFTY",
      "identifier": "OPTIDXNIFTY05-08-2021CE15550.00",
      "openInterest": 630,
      "changeinOpenInterest": -89,
      "pchangeinOpenInterest": -12.378303198887343,
      "totalTradedVolume": 364,
    
    }
  }

如果我这样做,要遍历这个文件:

for i in data:
    print(i)

我明白了:

records
filtered

从这里我如何获取data 中必须对应于Dates 的密钥。我发现的例子没有多个层次,这很复杂。

【问题讨论】:

  • 它是一个字典,你的循环只沿着键(data)迭代。尝试使用data.iteritems() 并进行案例研究:迭代变量是字典、列表……?然后执行相应的动作
  • 括号不平衡
  • 你很幸运,在那一击中,你就是今天的 ITM。此外,实际上不是您正在使用的 JSON,如 it's invalid。最后,您实际上想用这些数据做什么?我不认为只是迭代。

标签: python json loops


【解决方案1】:

如果只需要遍历数据:

for price in data["records"]["data"]:
       print(price)

这将为您提供data-key 中的列表元素。

这些列表元素本身就是字典,因此您可以检查它们对其他值的键:

if price["expiryDate"] == "05-Aug-2021"

【讨论】:

    猜你喜欢
    • 2020-07-21
    • 2021-05-09
    • 2016-02-04
    • 2018-10-06
    • 2018-06-19
    • 2017-02-23
    • 2012-06-07
    • 2011-08-09
    • 2011-11-29
    相关资源
    最近更新 更多