Python JSON提取

2024-09-28 18:16:45 发布

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

编辑:添加了实际的JSON对象和代码以供审阅

我有这种格式的JSON(仅此层次结构,假设JSON正在工作)

{u'kind': u'calendar#events', u'defaultReminders': [{u'minutes': 60, u'method': u'email'},             {u'minutes': 60, u'method': u'sms'}], u'items': [{u'status': u'confirmed', u'kind': u'calendar#event', u'end': {u'date': u'2013-07-27'}, u'created': u'2013-06-15T19:06:13.000Z', u'iCalUID': u'93idui5eb15knl8aavng2iu1mc@google.com', u'reminders': {u'useDefault': True}, u'htmlLink': u'https://www.google.com/calendar/event?eid=OTNpZHVpNWViMTVrbmw4YWF2bmcyaXUxbWMgbG9nYW5AbG9nYW5oZW5zb24uY29t', u'sequence': 0, u'updated': u'2013-06-15T19:06:13.635Z', u'summary': u'white water rafting', u'start': {u'date': u'2013-07-26'}, u'etag': u'"CxZm3kc9PAmVWyOavlumf_6aLhg/MTM3MTMyMzE3MzYzNTAwMA"', u'transparency': u'transparent', u'organizer': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'creator': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'id': u'93idui5eb15knl8aavng2iu1mc'}, {u'status': u'confirmed', u'kind': u'calendar#event', u'end': {u'dateTime': u'2013-06-24T13:00:00-05:00'}, u'created': u'2013-06-21T18:32:08.000Z', u'iCalUID': u'67cjnqboq3uhkrd5udogd5pog4@google.com', u'reminders': {u'useDefault': True}, u'htmlLink': u'https://www.google.com/calendar/event?eid=Njdjam5xYm9xM3Voa3JkNXVkb2dkNXBvZzQgbG9nYW5AbG9nYW5oZW5zb24uY29t', u'sequence': 0, u'updated': u'2013-06-21T18:32:08.192Z', u'summary': u'camp counselor', u'start': {u'dateTime': u'2013-06-24T09:00:00-05:00'}, u'etag': u'"CxZm3kc9PAmVWyOavlumf_6aLhg/MTM3MTgzOTUyODE5MjAwMA"', u'organizer': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'creator': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'id': u'67cjnqboq3uhkrd5udogd5pog4'}, {u'status': u'confirmed', u'kind': u'calendar#event', u'end': {u'dateTime': u'2013-06-25T09:00:00-05:00'}, u'created': u'2013-06-21T18:32:21.000Z', u'iCalUID': u'oktlfp6503u046ueq5dqmn07qs@google.com', u'reminders': {u'useDefault': True}, u'htmlLink': u'https://www.google.com/calendar/event?eid=b2t0bGZwNjUwM3UwNDZ1ZXE1ZHFtbjA3cXMgbG9nYW5AbG9nYW5oZW5zb24uY29t', u'sequence': 0, u'updated': u'2013-06-21T18:32:21.673Z', u'summary': u'front desk', u'start': {u'dateTime': u'2013-06-25T05:45:00-05:00'}, u'etag': u'"CxZm3kc9PAmVWyOavlumf_6aLhg/MTM3MTgzOTU0MTY3MzAwMA"', u'organizer': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'creator': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'id': u'oktlfp6503u046ueq5dqmn07qs'}, {u'status': u'confirmed', u'kind': u'calendar#event', u'end': {u'dateTime': u'2013-06-25T10:00:00-05:00'}, u'created': u'2013-06-21T18:32:29.000Z', u'iCalUID': u'2j139fec1nichbua2t1p161au8@google.com', u'reminders': {u'useDefault': True}, u'htmlLink': u'https://www.google.com/calendar/event?eid=MmoxMzlmZWMxbmljaGJ1YTJ0MXAxNjFhdTggbG9nYW5AbG9nYW5oZW5zb24uY29t', u'sequence': 0, u'updated': u'2013-06-21T18:32:29.802Z', u'summary': u'camp counselor', u'start': {u'dateTime': u'2013-06-25T09:00:00-05:00'}, u'etag': u'"CxZm3kc9PAmVWyOavlumf_6aLhg/MTM3MTgzOTU0OTgwMjAwMA"', u'organizer': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'creator': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'id': u'2j139fec1nichbua2t1p161au8'}, {u'status': u'confirmed', u'kind': u'calendar#event', u'end': {u'dateTime': u'2013-06-26T09:00:00-05:00'}, u'created': u'2013-06-21T18:32:48.000Z', u'iCalUID': u'0v19db1opb8uemnqbe2m8f5sd4@google.com', u'reminders': {u'useDefault': True}, u'htmlLink': u'https://www.google.com/calendar/event?eid=MHYxOWRiMW9wYjh1ZW1ucWJlMm04ZjVzZDQgbG9nYW5AbG9nYW5oZW5zb24uY29t', u'sequence': 0, u'updated': u'2013-06-21T18:32:48.507Z', u'summary': u'fitness floor', u'start': {u'dateTime': u'2013-06-26T05:45:00-05:00'}, u'etag': u'"CxZm3kc9PAmVWyOavlumf_6aLhg/MTM3MTgzOTU2ODUwNzAwMA"', u'organizer': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'creator': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'id': u'0v19db1opb8uemnqbe2m8f5sd4'}, {u'status': u'confirmed', u'kind': u'calendar#event', u'end': {u'dateTime': u'2013-06-26T13:00:00-05:00'}, u'created': u'2013-06-21T18:32:55.000Z', u'iCalUID': u'o71t8t2pjg5fl075ipo0e14dik@google.com', u'reminders': {u'useDefault': True}, u'htmlLink': u'https://www.google.com/calendar/event?eid=bzcxdDh0MnBqZzVmbDA3NWlwbzBlMTRkaWsgbG9nYW5AbG9nYW5oZW5zb24uY29t', u'sequence': 0, u'updated': u'2013-06-21T18:32:55.986Z', u'summary': u'camp counselor', u'start': {u'dateTime': u'2013-06-26T09:00:00-05:00'}, u'etag': u'"CxZm3kc9PAmVWyOavlumf_6aLhg/MTM3MTgzOTU3NTk4NjAwMA"', u'organizer': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'creator': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'id': u'o71t8t2pjg5fl075ipo0e14dik'}, {u'status': u'confirmed', u'kind': u'calendar#event', u'end': {u'dateTime': u'2013-06-27T13:00:00-05:00'}, u'created': u'2013-06-21T18:33:11.000Z', u'iCalUID': u'dffo6en4efnbjb0tm06ev92en4@google.com', u'reminders': {u'useDefault': True}, u'htmlLink': u'https://www.google.com/calendar/event?eid=ZGZmbzZlbjRlZm5iamIwdG0wNmV2OTJlbjQgbG9nYW5AbG9nYW5oZW5zb24uY29t', u'sequence': 0, u'updated': u'2013-06-21T18:33:11.511Z', u'summary': u'camp counselor', u'start': {u'dateTime': u'2013-06-27T09:00:00-05:00'}, u'etag': u'"CxZm3kc9PAmVWyOavlumf_6aLhg/MTM3MTgzOTU5MTUxMTAwMA"', u'organizer': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'creator': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'id': u'dffo6en4efnbjb0tm06ev92en4'}, {u'status': u'confirmed', u'kind': u'calendar#event', u'end': {u'dateTime': u'2013-06-28T09:00:00-05:00'}, u'created': u'2013-06-21T18:33:21.000Z', u'iCalUID': u'2p6c7u24kbv30acuojbh2ne794@google.com', u'reminders': {u'useDefault': True}, u'htmlLink': u'https://www.google.com/calendar/event?eid=MnA2Yzd1MjRrYnYzMGFjdW9qYmgybmU3OTQgbG9nYW5AbG9nYW5oZW5zb24uY29t', u'sequence': 0, u'updated': u'2013-06-21T18:33:21.986Z', u'summary': u'fitness floor', u'start': {u'dateTime': u'2013-06-28T05:45:00-05:00'}, u'etag': u'"CxZm3kc9PAmVWyOavlumf_6aLhg/MTM3MTgzOTYwMTk4NjAwMA"', u'organizer': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'creator': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'id': u'2p6c7u24kbv30acuojbh2ne794'}, {u'status': u'confirmed', u'kind': u'calendar#event', u'end': {u'dateTime': u'2013-06-28T13:00:00-05:00'}, u'created': u'2013-06-21T18:33:50.000Z', u'iCalUID': u'6ouv43oqi94ogvqam0ldh5pk48@google.com', u'reminders': {u'useDefault': True}, u'htmlLink': u'https://www.google.com/calendar/event?eid=Nm91djQzb3FpOTRvZ3ZxYW0wbGRoNXBrNDggbG9nYW5AbG9nYW5oZW5zb24uY29t', u'sequence': 0, u'updated': u'2013-06-21T18:33:50.756Z', u'summary': u'camp counselor', u'start': {u'dateTime': u'2013-06-28T09:00:00-05:00'}, u'etag': u'"CxZm3kc9PAmVWyOavlumf_6aLhg/MTM3MTgzOTYzMDc1NjAwMA"', u'organizer': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'creator': {u'self': True, u'displayName': u'Logan Henson', u'email': u'logan@loganhenson.com'}, u'id': u'6ouv43oqi94ogvqam0ldh5pk48'}], u'updated': u'2013-06-22T19:58:01.388Z', u'summary': u'logan@loganhenson.com', u'etag': u'"CxZm3kc9PAmVWyOavlumf_6aLhg/8Ps07gFrFoxf7ptkCmaNe4n6omU"',         u'timeZone': u'America/Chicago', u'accessRole': u'owner'}    

我成功提取了“营地顾问”和“u'dateTime”:u'2013-06-24T09:00:00-05:00'” 但希望能够提取dateTime值…而不是完整的开始值。在

我现在所拥有的是:(根据我的需要编辑) 我试图获得每个日历项摘要+开始+结束,已经成功,但需要得到具体的日期时间,而不是dict对象。下面给出了dateTime的keyror

^{pr2}$

那么有没有一种方法可以获得第二个JSON dict值或start? i、 e.我能做点什么来达到[“start”][keyvalue i want]的效果吗?在

谢谢!在


Tags: selfcomeventtruedatetimeemailgooglehenson
2条回答

是的,你可以把它叠起来(如果你问的是这个):

>>> d['items'][1]['start']['dateTime']
u'2013-06-24T09:00:00-05:00'

我的最终解决方案是针对像我这样刚接触JSON的人:

Item = calItem(a["summary"], a['start'].get('dateTime', a['start'].get('date')), a["end"].get("dateTime", a['start'].get('date')))

相关问题 更多 >