在pandas中列出列表中的列表

时间:2015-06-24 13:03:29

标签: python list pandas

我有一个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样式使用吗?

由于

1 个答案:

答案 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)