Comments (6)
Okay, so the list returned by getFilters() is not refreshed even though I have set the parameters? Am I missing a step to force a refresh of the plant names between # Set the end date and # Get plant names ?
from tableau-scraping.
@CoderPJM Hello, it seems ABAÚNA (CEG: CGH.PH.RS.000015-9.01)
filter is not available when Escala de Tempo GE Simp 4
filter is set to hora, dia and semana.
It seems that only mes and ano are available for ABAÚNA (CEG: CGH.PH.RS.000015-9.01)
from tableau-scraping.
@CoderPJM This is fixed in the latest release. The following code checks that the target filter is not present after the setParameter
:
from tableauscraper import TableauScraper as TS
url = "https://tableau.ons.org.br/t/ONS_Publico/views/GeraodeEnergia/HistricoGeraodeEnergia"
ts = TS()
ts.loads(url)
wb = ts.getWorkbook()
ws = wb.getWorksheet("Simples Geração de Energia Barra Semana")
# Get plant names
usina = [
t["values"]
for t in ws.getFilters()
if t["column"] == "USINACEG"
][0]
print(" ABAÚNA (CEG: CGH.PH.RS.000015-9.01)" in usina)
# Set resolution
print(f"Set resolution to Hora")
wb.setParameter("Escala de Tempo GE Simp 4", "Hora")
# Get plant names with filter refreshed
usina = [
t["values"]
for t in ws.getFilters()
if t["column"] == "USINACEG"
][0]
print(" ABAÚNA (CEG: CGH.PH.RS.000015-9.01)" in usina)
print(f"Set resolution to Ano")
wb.setParameter("Escala de Tempo GE Simp 4", "Ano")
# Get plant names with filter refreshed
usina = [
t["values"]
for t in ws.getFilters()
if t["column"] == "USINACEG"
][0]
print(" ABAÚNA (CEG: CGH.PH.RS.000015-9.01)" in usina)
Output
True
Set resolution to Hora
False
Set resolution to Ano
True
from tableau-scraping.
Thank you Bertrand, however the setFilter() is still not returning the expected data. The revised code below (using version 0.1.24) still returns data for a different plant, even after setting a plant that is in the getFilter() list:
from` tableauscraper import TableauScraper as TS
url = "https://tableau.ons.org.br/t/ONS_Publico/views/GeraodeEnergia/HistricoGeraodeEnergia"
ts = TS()
ts.loads(url)
wb = ts.getWorkbook()
ws = wb.getWorksheet("Simples Geração de Energia Barra Semana")
# Set resolution
print(f"Set resolution to Hora")
wb.setParameter("Escala de Tempo GE Simp 4", "Hora")
# Set the start date
print(f"Set start date to 01/01/2016")
wb.setParameter("Início Primeiro Período GE Simp 4",f"01/01/2016")
# Set the end date
print(f"Set end date to 01/01/2017")
wb = wb.setParameter("Fim Primeiro Período GE Simp 4",f"01/01/2017")
# Get plant names
usina = [
t["values"]
for t in ws.getFilters()
if t["column"] == "USINACEG"
][0]
# Set plant name to second plant in list (currently ' AIMORÉS (CEG: UHE.PH.MG.000042-6.01)')
plantName=usina[1]
print(f"Set plant to {plantName}")
wb = ws.setFilter("USINACEG",plantName)
# Retrieve daily worksheet
ws = wb.getWorksheet("Simples Geração de Energia Dia")
# Show plants
print(ws.data) # Contains data for 'PAU FERRO I'
Sorry to be a pain!
from tableau-scraping.
@CoderPJM The issue was the ordinal property that was used to build the filter index. Now, it only uses the position of the filter in the array as filter index. This is released in v0.1.25
from tableau-scraping.
Amazing, thanks again for such a fast response. Swapped to the latest version and it worked perfectly.
from tableau-scraping.
Related Issues (20)
- Issue selecting Parameter in Story Point HOT 1
- getTupleIds fail to run when `presModel` is None
- Can't set a Parameter if not listed in getParameters() HOT 2
- Can't set a filter to a value thats not in the defined list for that filter HOT 2
- add missing method for command `select-region-no-return-server` HOT 1
- Add getFilterItems() method
- Scraping tableau data based on data filtered with dropdown boxes in non existent worksheet columns
- Adding range filters
- soup.find fails to find Tableau data HOT 3
- Scraping from a private-access dashboard
- scraping workbook, NOT worksheet with selectables HOT 6
- Attempting to fetch data from sheet but can't get worksheets using getWorksheets(), most requests are returning empty arrays.
- Zones don't always update when there are story points
- getFilters() only returns the first 200 values
- How to scrape pagination data
- Radio Button filtering does not work
- Warning: mixed data types
- Add support for the 'Choose a format to download' > 'Data' option (alongside the crosstab option)
- Issue w/ filtering and parameters/selectable items HOT 1
- Setting a filter produces `WARNING - no data dictionary present in response` and causes `getCsvData` to raise `TypeError`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tableau-scraping.