在PowerBI中,如何使用Python脚本从数据库中获取最新数据?

2024-05-23 16:46:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我是PowerBI新手,到目前为止,我已经能够创建一个函数,将请求发送到本地数据库并检索记录,然后将其转换为数据帧。唯一的问题是,每次我运行它时,它总是返回相同的数据。只有当我创建一个新函数并第一次运行它时,它才会获得最新的数据。以下是PowerBI查询:

= () => let
        Source = Python.Execute("import requests#(lf)
import pandas as pd#(lf)import json#(lf)#(lf)def get_modifier(supplier=None, date=None):#(lf)    print(""SUPPLIER"", supplier)#(lf)    headers = {#(lf)        ""Content-Type"": ""application/json""#(lf)    }#(lf)#(lf)    data = {#(lf)        
""query"": '''query getOneModi($supplier:String, $date:String){#(lf)  modifier(supplier:$supplier, date:$date){#(lf)    modifier#(lf)    supplier#(lf)    date#(lf)    }#(lf)    }''',#(lf)#(lf)    ""variables"": {""supplier"": supplier}#(lf)    }
#(lf)#(lf)    data = json.dumps(data)#(lf)    response = requests.post(""http://127.0.0.1:8000/graphql/"", headers=headers, data=data)#(lf)    info = response.text#(lf)    info = json.loads(info)#(lf)    # print(""MODI RESPONSE"", info, ""\n"")#(lf)#(lf)    #(lf)    
return info[""data""][""modifier""][0][""modifier""]#(lf)#(lf)data = get_modifier(""Esso"")#(lf)data = json.loads(data)#(lf)d = {""Moncton"": data[""Moncton""], ""Sherbrooke"": data[""Sherbrooke""], ""Julie"":data[""Julie""]}#(lf)modi_df = pd.DataFrame(data=d, index=[0])#(lf)print(modi_df)"),
                        Custom1 = Source,
                        modi_df1 = Custom1{[Name="modi_df"]}[Value],
                        #"Changed Type" = Table.TransformColumnTypes(modi_df1,{{"Moncton", type text}})
                    in
                        #"Changed Type"

我认为问题不在于Power查询本身,而在于我不熟悉PowerBI特性。我如何让函数每次运行一个新查询而不是返回旧数据,这是可能的吗


Tags: 数据函数importinfojsondatadatetype
2条回答

好的,我只是在Home选项卡中按下“refresh all”,它再次运行该函数并返回最新的数据

我过去没有使用Power BI使用Python获取数据,但每当我遇到数据不刷新的问题时,我会通过以下步骤检查数据缓存管理选项: 文件>;选项和设置>;选项>;数据加载>;清除缓存

检查选项,看看是否有办法不缓存结果集。希望这能奏效

相关问题 更多 >