我有一个API响应,它返回一个SUDS对象,然后使用它将其转换为dict:
字典(活动)
我遇到的问题是我似乎无法理解如何将此列表转换为可用的Dataframe。如果我试试这个:
for_merge_ids = dict(campaigns)
test = pd.DataFrame.from_dict(for_merge_ids)
dict看起来像这样:
(campaign){
campaignID = 77705
campaignName = "FLI - Tablet"
campaignBid =
(bidInformation){
biddingStrategy = "Cpc"
cpcBid =
(CPCBid){
cpc = 0
}
cpaBid = None
}
budgetID = 0
remainingDays = 5
status = "RUNNING"
categoryBids =
(ArrayOfCategoryBid){
categoryBid[] =
(categoryBid){
campaignCategoryUID = 0
campaignID = 77705
categoryID = 0
selected = True
bidInformation =
(bidInformation){
biddingStrategy = "Cpc"
cpcBid =
(CPCBid){
cpc = 0
}
cpaBid = None
}
},
(categoryBid){
campaignCategoryUID = 0
campaignID = 77705
categoryID = 0
selected = True
bidInformation =
(bidInformation){
biddingStrategy = "Cpc"
cpcBid =
(CPCBid){
cpc = 0.12
}
cpaBid = None
}
},
(categoryBid){
campaignCategoryUID = 2289648
campaignID = 77705
categoryID = 1676592472
selected = True
bidInformation =
(bidInformation){
biddingStrategy = "Cpc"
cpcBid =
(CPCBid){
cpc = 0
}
cpaBid = None
}
},
(categoryBid){
campaignCategoryUID = 0
campaignID = 77705
categoryID = 0
selected = True
bidInformation =
(bidInformation){
biddingStrategy = "Cpc"
cpcBid =
(CPCBid){
cpc = 0
}
cpaBid = None
}
},
}
}]}
(虽然我只需要广告系列(包含广告系列名称),而不是其他广告系列(例如预算,数组范围内等)
我也尝试过指定两种东方类型。我得到一个数据帧,但重复了每个'列表'并且不理解列 - 就像这样:
campaign
0 [(campaignID, 4584), (campaignName, Before Clo...
1 [(campaignID, 5304), (campaignName, Before Clo...
2 [(campaignID, 5305), (campaignName, Before Clo...
3 [(campaignID, 5598), (campaignName, After), (e...
4 [(campaignID, 5684), (campaignName, Before far...
5 [(campaignID, 5685), (campaignName, Before far...
等等..
你能帮忙指出如何将这些行的标题输出并以df样式使用吗?
由于
答案 0 :(得分:0)
这可能有点晚了但试试这个,它将sudsobject转换为dict:
import pandas as pd
import suds.sudsobject as sudsobject
campaigns = [sudsobject.asdict(x) for x in campaigns ]
df = pd.DataFrame(campaigns)