Настройка API в Power BI для извлечения данных с веб — сайта

#python #api #powerbi-desktop

Вопрос:

Я относительно новичок в python и API. В принципе, у меня есть форма в Wufoo, из которой я в настоящее время вручную экспортирую данные в документ Excel, чтобы создать отчет Power BI. Я пытался установить веб-соединение непосредственно с Wufoo, чтобы мне больше не приходилось вручную извлекать данные.

Я попытался использовать функцию получения данных из Интернета в Power BI и ввести URL-адрес: http://{поддомен}.wufoo.com/api/v3/forms/{идентификатор}/поля.{формат}) обновление поддомена и использование хэша формы в качестве идентификатора, а также установка формата в json

Но получите ошибку: «(400): Ваш запрос был отклонен. Пожалуйста, сделайте этот запрос через HTTPS».

Я создал некоторый код на Python (я использую версию 3.9.5) ниже, и, хотя я могу заставить его извлекать данные и распечатывать их в своем редакторе кода (редактирование Komodo), но в навигаторе данные не отображаются. Что я здесь делаю не так?

 #!/usr/bin/python3

import urllib.request
import json

base_url = 'https://ewolford.wufoo.com/api/v3/'
username = 'API KEY'
password = 'password'

password_manager = urllib.request.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(None, base_url, username, password)
handler = urllib.request.HTTPBasicAuthHandler(password_manager)
opener = urllib.request.build_opener(handler)

urllib.request.install_opener(opener)

response = urllib.request.urlopen(base_url 'forms/hash/entries.json?sort=EntryIdamp;sortDirection=DESC')

data = json.load(response)

print(json.dumps(data, indent=4, sort_keys=True))
 

Ответ №1:

Вместо этого добавьте последнюю строку для печати pandas.dataframe . Из документа Microsoft doc. (выделено мной):

Интеграция Power BI с Python требует установки двух пакетов Python:

Панды. Библиотека программного обеспечения для обработки и анализа данных. Он предлагает структуры данных и операции для управления числовыми таблицами и временными рядами. Ваши импортированные данные должны находиться в фрейме данных pandas. Фрейм данных-это двумерная структура данных. Например, данные выровнены в табличном виде по строкам и столбцам.

 import pandas as pd

{your code here}

data=json.load(response)

table=pd.DataFrame(data)

print(table)
 

Комментарии:

1. Замечательно! Я знал, что мне чего-то не хватает, работал отлично. Теперь я должен выяснить, почему он извлекает только последние 25 записей, а не весь набор данных.

2. Если на вопрос получен успешный ответ, я рекомендую принять его как закрытый, а затем открыть новый вопрос.