使用Python将响应数据从API转换为Power BI中的表

时间:2019-12-24 07:19:01

标签: python json api powerbi

我使用python脚本连接到API。收到的回复如下。我需要将这些数据转换成多级表,然后再导入到PowerBI中,因为它具有几级数据(例如,“房间”被进一步拆分并产生了问题)

API的响应如下:

{"data": {"code": "AZ-0001", "date_from": "23/12/2019", "date_to": "25/12/2019", "rsrv_date": "06/12/2019", "rooms": [{"rrid": 4057782, "room_name": "STD", "date_from.......

然后使用Python Dataframe进行转换。这是我从Python获取数据的python脚本

import requests
import pandas as pd
import xml.etree.ElementTree as et
import json

uspw=('<API KEY>', None)
data= {'rcode': 'AZ-0001'}
response= requests.post('https://kapi.wubook.net/kapi/rsrvs/reservation', data, auth= uspw)

data = response.text
print(data)
#df = pd.read_json(data, orient='split')

from pandas.io.json import json_normalize
jdata = json.loads(data)
df = pd.DataFrame(jdata)


#dg = json_normalize(data)
print (df)

powerBi表中收到的输出如下所示: enter image description here

如您所见,列房间数据未拆分。如何将其拆分为单独的列?非常感谢。

1 个答案:

答案 0 :(得分:0)

您必须将json保存到文件中,然后作为新查询导入(获取数据> Json)。 另一种方法是在高级编辑器中将这些步骤添加到查询中:

    jsonParser = Json.Document(#"PreviousStep"[json]{0}),
    #"Converted to Table" = Table.FromList(jsonParser , Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
    #"Converted to Table"

请确保将#“ PreviousStep”替换为您上一步的名称。