Не удается отправить запросы в потоковый набор данных через PowerBI API - PullRequest
0 голосов
/ 07 октября 2019

Контекст: Я написал приведенные ниже функции python для получения данных от стороннего API, загрузки данных в SQL Server, а также для выполнения итеративных пост-запросов к API PowerBI для динамического обновления набора потоковых данных. Я следил за демонстрациями здесь & здесь .

Вопросы: Данные успешно загружаются в SQL Server. Тем не менее, почтовые запросы к API PowerBI не выполняются, и из-за нижеприведенных блоков python я не вижу код ответа или сообщение об ошибке. Может кто-нибудь, пожалуйста, посмотрите и внесите какие-либо предложения относительно того, почему почтовые запросы терпят неудачу? Или какие-либо предложения по устранению неполадок?

import requests
import json
from constantcontact import ConstantContact
from constantcontact import Contact
import os
import pyodbc
import time

REST_API_URL = 'REDACTED'

while True:
  def get_tracking_data():
    global REST_API_URL
    constantcontact = ConstantContact('REDACTED','REDACTED')
    campaign = constantcontact.get_campaigns().get_item(0)
    response = constantcontact.get_campaign_summary_report(campaign)
    with open(r'C:\leadgen_app\tracking_data.txt', 'a+', encoding="utf-8") as tracking_data:
      tracking_data.write('{}\n'.format(response))
    with open(r'C:\leadgen_app\tracking_data.txt', 'r', encoding="utf-8") as tracking_data2:
      filetext = tracking_data2.read()
      filetext = filetext.replace("'", '"')
      print(filetext)
      #Send this JSON object (in filetext_powerbi) to PowerBI service. 
      filetext_powerbi = filetext
      #filetext_powerbi = json.dumps(filetext_powerbi)
      #print(filetext_powerbi)
      send_to_powerbi = requests.post(REST_API_URL,filetext_powerbi)
      print(send_to_powerbi.text)
      print("Data posted to Power BI API")
      with open(r'C:\leadgen_app\tracking_data_json.txt', 'w', encoding="utf-8") as tracking_data_json:
        tracking_data_json.write('{}\n'.format(filetext))
    time.sleep(2)          
  get_tracking_data()

  def load_tracking_data():     
    username = 'REDACTED'
    password = 'REDACTED'

    tracking_connection = pyodbc.connect("Driver={ODBC Driver 13 for SQL Server};""Server=PC;""Database=leadgen_sandbox;""Username="+username+";""Password="+password+";""Trusted_Connection=yes;")
    tracking_connection_cursor = tracking_connection.cursor()

    tracking_connection_executesp = "USE leadgen_sandbox EXEC get_tracking_data"
    tracking_connection.autocommit = True
    tracking_connection_cursor.execute(tracking_connection_executesp)
    tracking_connection.close()
    print("Data loaded to SQL Server")
  load_tracking_data() 


  def delete_tracking_files():
    if os.path.exists(r"C:\leadgen_app\tracking_data.txt"):
      os.remove(r"C:\leadgen_app\tracking_data.txt")
    else:
      print("The file does not exist!")  
    if os.path.exists(r"C:\leadgen_app\tracking_data_json.txt"):
      os.remove(r"C:\leadgen_app\tracking_data_json.txt")
    else:
      print("The file does not exist!") 
  delete_tracking_files()  

Содержание публикуемого объекта filetext_powerbi выглядит следующим образом. На основании примера JSON PowerBI, показанного на снимке экрана ниже, я подозреваю, что элементы JSON должны быть вложены в словарь в списке, а также, возможно, в симпатичной печатной форме, но я не совсем уверен в этом. Если это так, может кто-нибудь предложить некоторые изменения кода для достижения этой цели?

{"sends": 0, "opens": 0, "clicks": 0, "forwards": 0, "unsubscribes": 0, "bounces": 0, "spam_count": 0}

enter image description here enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...