12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- import codecs
- import sys
- import codecs
- import traceback
- import requests
- import re
- import pandas as pd
- import random
- import urllib
- import json
- import gspread
- import datetime
- from gspread_pandas import Spread, Client
- from oauth2client.service_account import ServiceAccountCredentials
- import os
- def save_sheet(df,filename,tabname,startpos='A1'):
- scope = ['https://spreadsheets.google.com/feeds',
- 'https://www.googleapis.com/auth/drive']
- # credentials = ServiceAccountCredentials.from_json_keyfile_name('c:\\keys\\service\\gspread.json', scope)
- credentials = ServiceAccountCredentials.from_json_keyfile_name('c:\\keys\\spread2.json', scope)
- gc = gspread.authorize(credentials)
- spread = Spread(filename,creds=credentials)
- spread.df_to_sheet(df, index=False, sheet=tabname, start=startpos, replace=False)
- fr=codecs.open('c:/tmp/out.txt','r','utf-8')
- lines=fr.readlines()
- fr.close()
- cur_kw=None
- fulldict={}
- for l in lines:
- l=l.replace('\n','').replace('\u202a','').replace('\u202c','')
- if '(' in l:
- cur_kw=l
- else:
- elmts=l.split(',')
- lst=[]
- for elmt in elmts:
- lst.append(elmt)
- fulldict[cur_kw]=lst
- # fulldict
- # print(l)
- print(fulldict)
- def get_num_n(fulldict,n):
- result=[]
- for k,v in fulldict.items():
- if len(fulldict[k])<n+1:
- result.append(' ')
- else:
- result.append(fulldict[k][n])
- return result
- cols=[]
- maxlen=0
- for k,v in fulldict.items():
- elmts=k.split('(')
- k=elmts[0]
- cols.append(k)
- if len(v)>maxlen:
- maxlen=len(v)
- df = pd.DataFrame(columns=tuple(cols))
- llen=len(fulldict.items())
- for i in range(maxlen):
- df.loc[i]=get_num_n(fulldict,i)
- print(df)
- save_sheet(df,'keyword-details','風水')
|