【问题标题】:Python: Exporting Output to Google SheetsPython:将输出导出到 Google 表格
【发布时间】:2020-09-09 05:28:10
【问题描述】:

我编写了这个网络抓取程序,用于从 IG 市场中提取 26 个外汇对的零售交易情绪数据。

控制台的输出如下:

AUD-CAD: 64% of client accounts are short.
AUD-CHF: 54% of client accounts are long.
AUD-JPY: 60% of client accounts are short.
AUD-NZD: 60% of client accounts are long.
AUD-USD: 53% of client accounts are short.
CAD-CHF: 56% of client accounts are long.
CAD-JPY: 56% of client accounts are long.
CHF-JPY: 68% of client accounts are short.
EUR-AUD: 68% of client accounts are long.
EUR-CAD: 65% of client accounts are short.
EUR-CHF: 66% of client accounts are long.
EUR-GBP: 53% of client accounts are short.
EUR-JPY: 57% of client accounts are short.
EUR-NZD: 55% of client accounts are long.
EUR-USD: 54% of client accounts are short.
GBP-AUD: 73% of client accounts are long.
GBP-CAD: 66% of client accounts are long.
GBP-CHF: 63% of client accounts are long.
GBP-JPY: 52% of client accounts are short.
GBP-NZD: 57% of client accounts are long.
GBP-USD: 59% of client accounts are short.
SPOT-FX-NZDCAD: 68% of client accounts are short.
NZD-CHF: 59% of client accounts are short.
NZD-JPY: 57% of client accounts are short.
NZD-USD: 72% of client accounts are short.
USD-CAD: 69% of client accounts are long.
USD-CHF: 79% of client accounts are long.
USD-JPY: 58% of client accounts are long.

我想将此数据导出到名为“GsheetTest”的 Google 表格,但我被困住了 我不知道该怎么做。

已启用 Google API。我已经创建了凭据,获得了服务帐户 json 密钥。

我可以使用 pygsheets 和 panda 数据框向这个 google sheet 文件“GsheetTest”写入简单的文本。

代码如下:

import bs4, requests

def getIGsentiment(pairUrl):
    res = requests.get(pairUrl)
    res.raise_for_status()'

soup = bs4.BeautifulSoup(res.text, 'html.parser')
elems = soup.select('.price-ticket__sentiment')
return elems[0].get_text(" ", strip = True)


pair_list = ['aud-cad', 'aud-chf', 'aud-jpy', 'aud-nzd', 'aud-usd', 'cad-chf', 'cad-jpy', 
             'chf-jpy', 'eur-aud', 'eur-cad', 'eur-chf', 'eur-gbp', 'eur-jpy', 'eur-nzd', 
             'eur-usd', 'gbp-aud', 'gbp-cad', 'gbp-chf', 'gbp-jpy', 'gbp-nzd', 'gbp-usd', 
             'spot-fx-nzdcad', 'nzd-chf', 'nzd-jpy','nzd-usd', 'usd-cad', 'usd-chf',
             'usd-jpy']
for i in range(len(pair_list)):
    retail_positions = getIGsentiment('https://www.ig.com/us/forex/markets-forex/ +(pair_list[i]))
    pair = pair_list[i]
    print(pair.upper() +': ' + retail_positions[0:32].rstrip() + '.')

【问题讨论】:

    标签: python-3.x pygsheets


    【解决方案1】:

    首先在浏览器中打开 json 文件并找到电子邮件地址,现在与该电子邮件共享电子表格以及编辑权限,然后使用以下代码..

    #Import these libraries or pip install if not installed already
    from oauth2client.service_account import ServiceAccountCredentials
    import gspread
    import bs4, requests
    def getIGsentiment(pairUrl):
        res = requests.get(pairUrl)
        res.raise_for_status()'
    
    soup = bs4.BeautifulSoup(res.text, 'html.parser')
    elems = soup.select('.price-ticket__sentiment')
    return elems[0].get_text(" ", strip = True)
    
    
    pair_list = ['aud-cad', 'aud-chf', 'aud-jpy', 'aud-nzd', 'aud-usd', 'cad-chf', 'cad-jpy', 
                 'chf-jpy', 'eur-aud', 'eur-cad', 'eur-chf', 'eur-gbp', 'eur-jpy', 'eur-nzd', 
                 'eur-usd', 'gbp-aud', 'gbp-cad', 'gbp-chf', 'gbp-jpy', 'gbp-nzd', 'gbp-usd', 
                 'spot-fx-nzdcad', 'nzd-chf', 'nzd-jpy','nzd-usd', 'usd-cad', 'usd-chf',
                 'usd-jpy']
    
    
    #now you need auth and set scope 
    
    scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
    creds = ServiceAccountCredentials.from_json_keyfile_name('path-to-your-json.json', scope)
    #Auth
    gc = gspread.authorize(creds)
    sh = gc.open('Spread Sheet name You want to open')
    worksheet = sh.add_worksheet('sheet to be added name', int(rows), int(columns))
    
    
    for i in range(len(pair_list)):
        retail_positions = getIGsentiment('https://www.ig.com/us/forex/markets-forex/ +(pair_list[i]))
        pair = pair_list[i]
        foo = pair.upper() +': ' + retail_positions[0:32].rstrip() + '.'
        worksheet.insert_row(foo, 1)
    

    【讨论】:

      【解决方案2】:

      如果您有一个字符串列表,并且您想将每个字符串写入单个单元格。我认为这就是你想要的。

      import pygsheets
      import numpy as np
      
      pair_data = []  # data fro your code
      
      gc = pygsheets.authorize()
      
      # Open spreadsheet and then worksheet
      sh = gc.open('GsheetTest')
      wks = sh.sheet1
      wks.wks.update_values('A1', pair_data)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多