繁体   English   中英

Power BI 中的 Python 控制台

[英]Python console in Power BI

我目前正在使用 Python 脚本编写 Power BI。 我想打印(使用函数print )但我无法找到在任何地方查看我打印的消息的方法。

如果 Power BI 上存在控制台以获取 Python 输出,我已经在 Google 和 Stack Overflow 上进行了搜索

import pandas as pd

dataset = pd.DataFrame(dataset.loc[:1, 'access_token'])

access_token = dataset.iloc[0]
print(access_token)

我想要print(access_token)的输出

我终于找到了一种在 Power BI 中用 Python 打印调试的有效方法。

只要我们不能使用函数print因为我们没有在 Power BI 中显示 Python 的标准输出,我们就可以引发异常以显示变量或其他任何东西。

您可以使用raise Exception(TheVariableYouWantToPrint )`

例如,如果你想检查dataset全局变量的内容,你可以做raise Exception(dataset)

您还可以打印一个字符串,如raise Exception("Hello World")

这不是打印东西的最佳方式,但仍然是我发现的唯一一种轻松高效的方式

对不起,没有控制台 但是还有其他方法可以检查您的变量。 虽然不使用print() 您尚未指定是直接在“ Report选项卡上使用Python visual ,还是在Power Query Editor的“ Transform选项卡下使用“ Run Python Script选项。 我建议后者。

尝试这个:

1:在报表选项卡中,单击单击Home > Enter Data > Load而不插入任何数据。

2:单击“ Edit Queries并选择“ Transform > Run Python Script

3:在对话框中插入以下代码片段:

import pandas as pd
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)

我刚刚使用了一些示例数据,因为我没有你的dataset 这里重要的是我的样本中的 df 和样本中的数据集都是pandas.core.frame.DataFrame类型。

4:点击OK ,你应该得到这个:

在此处输入图片说明

您导入或创建的大多数变量(我们稍后会介绍)应该在那里可用。 在我们的例子中,我们有ddf 单击df右侧的table以查看:

在此处输入图片说明

我希望这有帮助!


尾注:

关于“大多数变量...”部分。 似乎您的变量是否可用取决于所述变量的数据类型。 我尝试在您的问题中使用片段的一个版本,发现access_token = df.iloc[0]返回一个类型为pandas.core.series.Series的变量。 由于某种原因,这将无法直接检查,就像ddf分别是dictpandas.core.frame.DataFrame类型的情况一样。 因此,要使access_token对您可用,您应该尝试access_token = dataset.iloc[0].to_frame()

这不是最简单的事情,但应该有效。 使用 Tkinter 显示一个包含您的消息的表单......像这样:

import tkinter as tk
master = tk.Tk()
HelloWorld = "HelloWorld   "
msg = tk.Message(master, text = HelloWorld )
msg.config(bg='lightgreen', font=('times', 24, 'italic'))
msg.pack()
tk.mainloop()

在此处输入图片说明

另一种方法是在 PBI 打开记事本中制作 python 并从 df (在它打开时)写下你需要的任何东西,这样你就可以看到你需要的东西。 这是代码:

import os
f = open('foo.txt','w')
f.write('Hello world!')
f.close()
os.system("notepad.exe foo.txt")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM