在python中访问json文件的n个元素

2024-05-20 07:16:46 发布

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

我有一个按升序排序的json文件。我想访问它的n个元素。例如,我想访问它的最后n=5个元素。我怎么写?在

这是我的jason档案:

{  
"exDict":[  
  [  
     "android.widget.TextView void setText(int)\n",
     1
  ],
  [  
     "com.android.internal.telephony.cdma.SmsMessage com.android.internal.telephony.cdma.SmsMessage createFromPdu(byte[])\n",
     1
  ],
  [  
     "android.app.AlertDialog$Builder void init(android.content.Context)\n",
     1
  ],
  [  
     "android.location.LocationManager void removeGpsStatusListener(android.location.GpsStatus$Listener)\n",
     6
  ],
  [  
     "android.provider.Settings$Secure java.lang.String getString(android.content.ContentResolver,java.lang.String)\n",
     8
  ],
  [  
     "android.provider.Settings$System int getInt(android.content.ContentResolver,java.lang.String,int)\n",
     9
  ],
  [  
     "android.provider.Settings$System boolean putString(android.content.ContentResolver,java.lang.String,java.lang.String)\n",
     10
  ],
  [  
     "android.database.sqlite.SQLiteDatabase void execSQL(java.lang.String,java.lang.Object[])\n",
     13
  ]
 ]
}

Tags: com元素langstringsettingsjavacontentprovider
1条回答
网友
1楼 · 发布于 2024-05-20 07:16:46

字典中的数据是一个列表列表。因此,您可以简单地使用列表切片来访问数据。这里有一个关于slicing的教程

具体来说,对于您的具体情况,需要将json文件加载到字典中,如下所示:

import json

with open("/tmp/test.json", "r") as f:
        data = json.load(f)

然后要得到最后n个元素,您可以这样做:

^{pr2}$

一般来说,要将起始索引为start_index的n个元素切片,请执行以下操作:

data["exDict"][start_index:n+1]

有关python中切片的详细说明,请参见下面的SO(stackoverflow)讨论:

如何访问每个列表的第一个元素

下面是一个工作示例,element[0]保存列表中第一个元素的值:

import json

with open("/tmp/test.json", "r") as f:
        data = json.load(f)

mylist = data["exDict"][-5:]

# to access the first line element of each list: 
for index, element in enumerate(mylist):
        print element[0]

相关问题 更多 >