Skip to main content
 首页 » 编程设计

python之如何使用 python 打印完整的 json 数组

2025年05月04日30cloudgamer

我有一个 json 数组。并且只需要使用 python 打印 id。我该怎么做?

这是我的 json 数组:

{ 
"messages": 
  [ 
   { 
 
   "id": "1531cf7d9e03e527", 
   "threadId": "1531cf7d9e03e527" 
   }, 
 
   { 
   "id": "1531cdafbcb4a0e6", 
   "threadId": "1531bfccfceb1ed7" 
   } 
 
 ], 
 
 "nextPageToken": "01647645424797380808", 
 
 "resultSizeEstimate": 103 
} 

*编辑:*

我实际上正在编写一个 python 代码来从 gmail API 获取消息。 该程序以 json 格式提供 gmail 帐户邮件的邮件 ID 和线程 ID。我只需要消息 ID 而不是线程 ID。

from __future__ import print_function 
import httplib2 
import os 
 
from apiclient import discovery 
import oauth2client 
from oauth2client import client 
from oauth2client import tools 
import json 
try: 
    import argparse 
    flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args() 
    except ImportError: 
    flags = None 
 
 
SCOPES = 'https://www.googleapis.com/auth/gmail.readonly' 
CLIENT_SECRET_FILE = 'client_server.json' 
APPLICATION_NAME = 'Gmail API Python Quickstart' 
 
def get_credentials(): 
 
    home_dir = os.path.expanduser('~') 
    credential_dir = os.path.join(home_dir, '.credentials') 
    if not os.path.exists(credential_dir): 
        os.makedirs(credential_dir) 
    credential_path = os.path.join(credential_dir, 
                                   'gmail-python-quickstart.json') 
 
    store = oauth2client.file.Storage(credential_path) 
    credentials = store.get() 
    if not credentials or credentials.invalid: 
        flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES) 
        flow.user_agent = APPLICATION_NAME 
        if flags: 
            credentials = tools.run_flow(flow, store, flags) 
        else:  
            credentials = tools.run(flow, store) 
        print('Storing credentials to ' + credential_path) 
    return credentials 
def main(): 
 
    credentials = get_credentials() 
    http = credentials.authorize(httplib2.Http()) 
    service = discovery.build('gmail', 'v1', http=http) 
    message = service.users().messages().get(userId='me',id='').execute() 
    response = service.users().messages().list(userId='me',q='').execute() 
    messages = [] 
    if 'messages' in response: 
      messages.extend(response['messages']) 
      print(messages) 
 
    result = loads(messages) 
    ids = [message['id'] for message in result['messages']] 
    print (ids) 
 
    while 'nextPageToken' in response: 
      page_token = response['nextPageToken'] 
      response = service.users().messages().list(userId='me', q='',pageToken=page_token).execute() 
      messages.extend(response['messages']) 
     print(message['id']) 
 
    print (message['snippet']) 
 
 
 
if __name__ == '__main__': 
    main() 

请您参考如下方法:

import json 
dict_result = json.loads(your_json) 
ids = [message['id'] for message in dict_result['messages']]