2016-05-27 20 views
0

私はGoogleドライブの管理SDKからユーザーのアクティビティログの収集に取り組んでいます。これまではPythonスクリプトを作成していましたが、JSON形式でいくつかの活動結果が得られています。しかし、フォーマット自体は私が探しているものではなく、ここに例があります:JSON出力()

{u'nextPageToken ':u'A:6165487685465:-68949849879703739:37156465464:C65dE3qea'、u'items ': [{u'kind ':u'admin#レポート位活動'、u'actor ':{u'profileId':u'10651651515611643' 、u'email ':u'[email protected]'}、u'events ':[{u'type':u'login '、u'name':u'login_success '、...

ご覧のとおり、すべての冒頭にいくつかの "u"文字が表示されていますなぜ私は分かりません。

実は私は、出力はこのように構成取得したい:

{ 
    "kind": "reports#activities", 
    "nextPageToken": string, 
    "items": [ 
    { 
     "kind": "audit#activity", 
     "id": { 
     "time": datetime, 
     "uniqueQualifier": long, 
     "applicationName": string, 
     "customerId": string 
     }, 
     "actor": { 
     "callerType": string, 
     "email": string, 
     "profileId": long, 
     "key": string 
     }, 
     "ownerDomain": string, 
     "ipAddress": string, 
     "events": [ 
     { 
      "type": string, 
      "name": string, 
      "parameters": [ 
      { 
       "name": string, 
       "value": string, 
       "intValue": long, 
       "boolValue": boolean 
      } 
      ] 
     } 
     ] 
    } 
    ] 

}

が、それはスクリプト自体からそれを構築することは可能ですか?これは、GoogleのAPIや任意のヘルプを使用して私の最初の時間をいただければ幸いれ

from __future__ import print_function 
import httplib2 
import os 
import simplejson as json 
from apiclient import discovery 
import oauth2client 
from oauth2client import client 
from oauth2client import tools 

try: 
import argparse 
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args() 
except ImportError: 
flags = None 
SCOPES = 'https://www.googleapis.com/auth/admin.reports.audit.readonly' 
CLIENT_SECRET_FILE = 'client_secret.json' 
APPLICATION_NAME = 'Reports 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, 
           'admin-reports_v1-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('admin', 'reports_v1', http=http) 

results = service.activities().list(userKey='all', applicationName='drive', 
    maxResults=10).execute() 
activities = results.get('items', []) 

if not activities: 
    print('No activities') 
else: 
    for activity in activities: print(results) 

if __name__ == '__main__': 
main() 

:(?たぶんのsimplejsonを使って)

ここに私のpythonのコードです。

ありがとうございます!

+0

チェックUnicodeの接頭辞についてこのポストhttp://stackoverflow.com/questions/13940272ため

{ "4": 5, "6": 7 } 

/python-json-loads-returns-items-with-u – glls

答えて

0

unicode prefix恐怖あなた聞かせてはいけない:あなただけjson.dumps(引数、インデント= 2) を使用し、レイアウトはインデントし、それに応じて間隔を置いて配置され、フォーマットされたJSONを取得するには

を。

例:

import json 
print json.dumps({'4': 5, '6': 7}, sort_keys=True, 
        indent=4, separators=(',', ': ')) 

結果:PythonのJSONモジュールの詳細here

+0

魅力的なように働いて、gllsありがとう! – Felz

+0

probなし、うれしい – glls