猿问

如何在 Python 中访问字符串中的某些值

我只需要提取字符串中的特定元素值。下面是我使用 Facebook AdsInsight API 获取 AdsInsight 数据的代码。


class LibFacebook:

    def __init__(self, app_id, app_secret, access_token, ad_account_id):

        FacebookAdsApi.init(app_id, app_secret, access_token)

        self.account = AdAccount(ad_account_id)

      #get ads insight

        insights = self.account.get_insights(fields=[

        AdsInsights.Field.campaign_id,

        AdsInsights.Field.actions,

], params={

        'level': AdsInsights.Level.campaign,

        })

        print(insights)


输出


<AdsInsights> {

    "campaign_id": "23843294609751234",

    "actions": [

        {

            "action_type": "post_reaction",

            "value": "1"

        },

        {

            "action_type": "landing_page_view",

            "value": "78"

        },

        {

            "action_type": "link_click",

            "value": "163"

        }

       ]


问题:与campaign_id 值(23843294609751234)一起,我只需要landing_page_view的值,即78(而不是其他操作项)并将其放入df 中。我如何访问它们?


更多信息:AdsInsights.Field.actions 是字符串类型。


type(AdsInsights.Field.actions)


str


慕妹3146593
浏览 126回答 1
1回答

慕盖茨4494581

希望这会起作用,让您的数据是AdsInsights对象列表obj = [{&nbsp; &nbsp; "campaign_id": "23843294609751234",&nbsp; &nbsp; "actions" : [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "action_type": "post_reaction",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "value": "1"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "action_type": "landing_page_view",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "value": "78"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "action_type": "link_click",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "value": "163"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;]},&nbsp;{&nbsp; &nbsp; "campaign_id": "112233",&nbsp; &nbsp; "actions" : [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "action_type": "post_reaction",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "value": "1"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "action_type": "landing_page_view",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "value": "100"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "action_type": "link_click",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "value": "163"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;]}]你可以得到这样的结果result_arr = []for i in obj:&nbsp; &nbsp; datadict = {}&nbsp;&nbsp;&nbsp; &nbsp; datadict["campaign_id"] = i.get("campaign_id")&nbsp; &nbsp; for action in i.get("actions"):&nbsp; &nbsp; &nbsp; &nbsp; if action.get("action_type") == "landing_page_view":&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; datadict["value"]= action.get("value")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result_arr.append(datadict)result_arr将会[{'campaign_id': '23843294609751234', 'value': '78'},&nbsp;{'campaign_id': '112233', 'value': '100'}]接下来将字典列表转换为数据框df=pd.DataFrame(result_arr)
随时随地看视频慕课网APP

相关分类

Python
我要回答