从查询结果中删除\ r \ n,然后将值提取到列表中

发布于 2025-02-04 03:37:34 字数 11096 浏览 1 评论 0原文

我发送这样的查询:

    resp = http.urlopen('GET', 'https://api.appfigures.com/v2/values/time/-1/0/?client_key=12346', headers=headers)
    print('Response', str(resp.data))

我看到的结果是这样的

Response b'{\r\n  "2022-06-02": {\r\n    "downloads": 1,\r\n    "re_downloads": 34,\r\n    "uninstalls": 0,\r\n    "updates": 0,\r\n    "returns": 0,\r\n    "net_downloads": 1,\r\n    "promos": 0,\r\n    "revenue": "57.05",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "67.12",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 1,\r\n    "standard_revenue": "57.05",\r\n    "gross_standard_revenue": "67.12",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 1,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "0.00",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 0,\r\n    "standard_revenue": "0.00",\r\n    "gross_standard_revenue": "0.00",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 0,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "iap_revenue": "0.00",\r\n    "iap_returns_amount": "0.00",\r\n    "gross_iap_revenue": "0.00",\r\n    "gross_iap_returns_amount": "0.00",\r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-03"\r\n  }\r\n}'
b'{\r\n  "2022-06-02": {\r\n    "downloads": 1,\r\n    "re_downloads": 34,\r\n    "uninstalls": 0,\r\n    "updates": 0,\r\n    "returns": 0,\r\n    "net_downloads": 1,\r\n    "promos": 0,\r\n    "revenue": "57.05",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "67.12",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 1,\r\n    "standard_revenue": "57.05",\r\n    "gross_standard_revenue": "67.12",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 1,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 0,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    \r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-03"\r\n  }\r\n}'

世界“ re_downloads”和“卸载”可能在此输出中发生多次。是否可以提取这两个键的所有值并将它们添加到2个不同的列表中?

例如,列表re_downloads []包含resoponse中发生的所有值,而另一个列表卸载[]包含<<包含<<代码> repoponse

编辑:

Response {'2022-06-01': {'downloads': 110, 're_downloads': 82, 'uninstalls': 17, 'updates': 16, 'returns': 0, 'net_downloads': 110, 'promos': 0, 'revenue': '402.44', 'returns_amount': '0.00', 'edu_downloads': 0, 'gifts': 0, 'gift_redemptions': 0, 'edu_revenue': '0.00', 'gross_revenue': '524.92', 'gross_returns_amount': '0.00', 'gross_edu_revenue': '0.00', 'business_downloads': 0, 'business_revenue': '0.00', 'gross_business_revenue': '0.00', 'standard_downloads': 110, 'standard_revenue': '402.44', 'gross_standard_revenue': '524.92', 'app_downloads': 103, 'app_returns': 0, 'iap_amount': 7, 'iap_returns': 0, 'subscription_purchases': 0, 'subscription_returns': 0, 'app_revenue': '0.00', 'app_returns_amount': '0.00', 'gross_app_revenue': '0.00', 'gross_app_returns_amount': '0.00', 'iap_revenue': '402.44', 'iap_returns_amount': '0.00', 'gross_iap_revenue': '524.92', 'gross_iap_returns_amount': '0.00', 'subscription_revenue': '0.00', 'subscription_returns_amount': '0.00', 'gross_subscription_revenue': '0.00', 'gross_subscription_returns_amount': '0.00', 'date': '2022-06-01'}, '2022-06-02': {'downloads': 84, 're_downloads': 92, 'uninstalls': 0, 'updates': 8, 'returns': 0, 'net_downloads': 84, 'promos': 0, 'revenue': '285.24', 'returns_amount': '0.00', 'edu_downloads': 0, 'gifts': 0, 'gift_redemptions': 0, 'edu_revenue': '0.00', 'gross_revenue': '386.62', 'gross_returns_amount': '0.00', 'gross_edu_revenue': '0.00', 'business_downloads': 0, 'business_revenue': '0.00', 'gross_business_revenue': '0.00', 'standard_downloads': 84, 'standard_revenue': '285.24', 'gross_standard_revenue': '386.62', 'app_downloads': 79, 'app_returns': 0, 'iap_amount': 5, 'iap_returns': 0, 'subscription_purchases': 0, 'subscription_returns': 0, 'app_revenue': '0.00', 'app_returns_amount': '0.00', 'gross_app_revenue': '0.00', 'gross_app_returns_amount': '0.00', 'iap_revenue': '285.24', 'iap_returns_amount': '0.00', 'gross_iap_revenue': '386.62', 'gross_iap_returns_amount': '0.00', 'subscription_revenue': '0.00', 'subscription_returns_amount': '0.00', 'gross_subscription_revenue': '0.00', 'gross_subscription_returns_amount': '0.00', 'date': '2022-06-02'}, '2022-06-03': {'downloads': 0, 're_downloads': 4, 'uninstalls': 0, 'updates': 0, 'returns': 0, 'net_downloads': 0, 'promos': 0, 'revenue': '0.00', 'returns_amount': '0.00', 'edu_downloads': 0, 'gifts': 0, 'gift_redemptions': 0, 'edu_revenue': '0.00', 'gross_revenue': '0.00', 'gross_returns_amount': '0.00', 'gross_edu_revenue': '0.00', 'business_downloads': 0, 'business_revenue': '0.00', 'gross_business_revenue': '0.00', 'standard_downloads': 0, 'standard_revenue': '0.00', 'gross_standard_revenue': '0.00', 'app_downloads': 0, 'app_returns': 0, 'iap_amount': 0, 'iap_returns': 0, 'subscription_purchases': 0, 'subscription_returns': 0, 'app_revenue': '0.00', 'app_returns_amount': '0.00', 'gross_app_revenue': '0.00', 'gross_app_returns_amount': '0.00', 'iap_revenue': '0.00', 'iap_returns_amount': '0.00', 'gross_iap_revenue': '0.00', 'gross_iap_returns_amount': '0.00', 'subscription_revenue': '0.00', 'subscription_returns_amount': '0.00', 'gross_subscription_revenue': '0.00', 'gross_subscription_returns_amount': '0.00', 'date': '2022-06-03'}}
b'{\r\n  "2022-06-01": {\r\n    "downloads": 110,\r\n    "re_downloads": 82,\r\n    "uninstalls": 17,\r\n    "updates": 16,\r\n    "returns": 0,\r\n    "net_downloads": 110,\r\n    "promos": 0,\r\n    "revenue": "402.44",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "524.92",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 110,\r\n    "standard_revenue": "402.44",\r\n    "gross_standard_revenue": "524.92",\r\n    "app_downloads": 103,\r\n    "app_returns": 0,\r\n    "iap_amount": 7,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "iap_revenue": "402.44",\r\n    "iap_returns_amount": "0.00",\r\n    "gross_iap_revenue": "524.92",\r\n    "gross_iap_returns_amount": "0.00",\r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-01"\r\n  },\r\n  "2022-06-02": {\r\n    "downloads": 84,\r\n    "re_downloads": 92,\r\n    "uninstalls": 0,\r\n    "updates": 8,\r\n    "returns": 0,\r\n    "net_downloads": 84,\r\n    "promos": 0,\r\n    "revenue": "285.24",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "386.62",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 84,\r\n    "standard_revenue": "285.24",\r\n    "gross_standard_revenue": "386.62",\r\n    "app_downloads": 79,\r\n    "app_returns": 0,\r\n    "iap_amount": 5,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "iap_revenue": "285.24",\r\n    "iap_returns_amount": "0.00",\r\n    "gross_iap_revenue": "386.62",\r\n    "gross_iap_returns_amount": "0.00",\r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-02"\r\n  },\r\n  "2022-06-03": {\r\n    "downloads": 0,\r\n    "re_downloads": 4,\r\n    "uninstalls": 0,\r\n    "updates": 0,\r\n    "returns": 0,\r\n    "net_downloads": 0,\r\n    "promos": 0,\r\n    "revenue": "0.00",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "0.00",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 0,\r\n    "standard_revenue": "0.00",\r\n    "gross_standard_revenue": "0.00",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 0,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "iap_revenue": "0.00",\r\n    "iap_returns_amount": "0.00",\r\n    "gross_iap_revenue": "0.00",\r\n    "gross_iap_returns_amount": "0.00",\r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-03"\r\n  }\r\n}'

I send a query like this:

    resp = http.urlopen('GET', 'https://api.appfigures.com/v2/values/time/-1/0/?client_key=12346', headers=headers)
    print('Response', str(resp.data))

The result I see is something like this

Response b'{\r\n  "2022-06-02": {\r\n    "downloads": 1,\r\n    "re_downloads": 34,\r\n    "uninstalls": 0,\r\n    "updates": 0,\r\n    "returns": 0,\r\n    "net_downloads": 1,\r\n    "promos": 0,\r\n    "revenue": "57.05",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "67.12",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 1,\r\n    "standard_revenue": "57.05",\r\n    "gross_standard_revenue": "67.12",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 1,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "0.00",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 0,\r\n    "standard_revenue": "0.00",\r\n    "gross_standard_revenue": "0.00",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 0,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "iap_revenue": "0.00",\r\n    "iap_returns_amount": "0.00",\r\n    "gross_iap_revenue": "0.00",\r\n    "gross_iap_returns_amount": "0.00",\r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-03"\r\n  }\r\n}'
b'{\r\n  "2022-06-02": {\r\n    "downloads": 1,\r\n    "re_downloads": 34,\r\n    "uninstalls": 0,\r\n    "updates": 0,\r\n    "returns": 0,\r\n    "net_downloads": 1,\r\n    "promos": 0,\r\n    "revenue": "57.05",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "67.12",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 1,\r\n    "standard_revenue": "57.05",\r\n    "gross_standard_revenue": "67.12",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 1,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 0,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    \r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-03"\r\n  }\r\n}'

The world "re_downloads" and "uninstalls" might occur several times in this output. Is it possible to extract ALL values for these two keys and add them to 2 different lists?

For example, a list re_downloads[]contains all values occuring in the resoponse while another list uninstalls[]contains all respective values occurring in the resoponse

Edit:

Response {'2022-06-01': {'downloads': 110, 're_downloads': 82, 'uninstalls': 17, 'updates': 16, 'returns': 0, 'net_downloads': 110, 'promos': 0, 'revenue': '402.44', 'returns_amount': '0.00', 'edu_downloads': 0, 'gifts': 0, 'gift_redemptions': 0, 'edu_revenue': '0.00', 'gross_revenue': '524.92', 'gross_returns_amount': '0.00', 'gross_edu_revenue': '0.00', 'business_downloads': 0, 'business_revenue': '0.00', 'gross_business_revenue': '0.00', 'standard_downloads': 110, 'standard_revenue': '402.44', 'gross_standard_revenue': '524.92', 'app_downloads': 103, 'app_returns': 0, 'iap_amount': 7, 'iap_returns': 0, 'subscription_purchases': 0, 'subscription_returns': 0, 'app_revenue': '0.00', 'app_returns_amount': '0.00', 'gross_app_revenue': '0.00', 'gross_app_returns_amount': '0.00', 'iap_revenue': '402.44', 'iap_returns_amount': '0.00', 'gross_iap_revenue': '524.92', 'gross_iap_returns_amount': '0.00', 'subscription_revenue': '0.00', 'subscription_returns_amount': '0.00', 'gross_subscription_revenue': '0.00', 'gross_subscription_returns_amount': '0.00', 'date': '2022-06-01'}, '2022-06-02': {'downloads': 84, 're_downloads': 92, 'uninstalls': 0, 'updates': 8, 'returns': 0, 'net_downloads': 84, 'promos': 0, 'revenue': '285.24', 'returns_amount': '0.00', 'edu_downloads': 0, 'gifts': 0, 'gift_redemptions': 0, 'edu_revenue': '0.00', 'gross_revenue': '386.62', 'gross_returns_amount': '0.00', 'gross_edu_revenue': '0.00', 'business_downloads': 0, 'business_revenue': '0.00', 'gross_business_revenue': '0.00', 'standard_downloads': 84, 'standard_revenue': '285.24', 'gross_standard_revenue': '386.62', 'app_downloads': 79, 'app_returns': 0, 'iap_amount': 5, 'iap_returns': 0, 'subscription_purchases': 0, 'subscription_returns': 0, 'app_revenue': '0.00', 'app_returns_amount': '0.00', 'gross_app_revenue': '0.00', 'gross_app_returns_amount': '0.00', 'iap_revenue': '285.24', 'iap_returns_amount': '0.00', 'gross_iap_revenue': '386.62', 'gross_iap_returns_amount': '0.00', 'subscription_revenue': '0.00', 'subscription_returns_amount': '0.00', 'gross_subscription_revenue': '0.00', 'gross_subscription_returns_amount': '0.00', 'date': '2022-06-02'}, '2022-06-03': {'downloads': 0, 're_downloads': 4, 'uninstalls': 0, 'updates': 0, 'returns': 0, 'net_downloads': 0, 'promos': 0, 'revenue': '0.00', 'returns_amount': '0.00', 'edu_downloads': 0, 'gifts': 0, 'gift_redemptions': 0, 'edu_revenue': '0.00', 'gross_revenue': '0.00', 'gross_returns_amount': '0.00', 'gross_edu_revenue': '0.00', 'business_downloads': 0, 'business_revenue': '0.00', 'gross_business_revenue': '0.00', 'standard_downloads': 0, 'standard_revenue': '0.00', 'gross_standard_revenue': '0.00', 'app_downloads': 0, 'app_returns': 0, 'iap_amount': 0, 'iap_returns': 0, 'subscription_purchases': 0, 'subscription_returns': 0, 'app_revenue': '0.00', 'app_returns_amount': '0.00', 'gross_app_revenue': '0.00', 'gross_app_returns_amount': '0.00', 'iap_revenue': '0.00', 'iap_returns_amount': '0.00', 'gross_iap_revenue': '0.00', 'gross_iap_returns_amount': '0.00', 'subscription_revenue': '0.00', 'subscription_returns_amount': '0.00', 'gross_subscription_revenue': '0.00', 'gross_subscription_returns_amount': '0.00', 'date': '2022-06-03'}}
b'{\r\n  "2022-06-01": {\r\n    "downloads": 110,\r\n    "re_downloads": 82,\r\n    "uninstalls": 17,\r\n    "updates": 16,\r\n    "returns": 0,\r\n    "net_downloads": 110,\r\n    "promos": 0,\r\n    "revenue": "402.44",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "524.92",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 110,\r\n    "standard_revenue": "402.44",\r\n    "gross_standard_revenue": "524.92",\r\n    "app_downloads": 103,\r\n    "app_returns": 0,\r\n    "iap_amount": 7,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "iap_revenue": "402.44",\r\n    "iap_returns_amount": "0.00",\r\n    "gross_iap_revenue": "524.92",\r\n    "gross_iap_returns_amount": "0.00",\r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-01"\r\n  },\r\n  "2022-06-02": {\r\n    "downloads": 84,\r\n    "re_downloads": 92,\r\n    "uninstalls": 0,\r\n    "updates": 8,\r\n    "returns": 0,\r\n    "net_downloads": 84,\r\n    "promos": 0,\r\n    "revenue": "285.24",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "386.62",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 84,\r\n    "standard_revenue": "285.24",\r\n    "gross_standard_revenue": "386.62",\r\n    "app_downloads": 79,\r\n    "app_returns": 0,\r\n    "iap_amount": 5,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "iap_revenue": "285.24",\r\n    "iap_returns_amount": "0.00",\r\n    "gross_iap_revenue": "386.62",\r\n    "gross_iap_returns_amount": "0.00",\r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-02"\r\n  },\r\n  "2022-06-03": {\r\n    "downloads": 0,\r\n    "re_downloads": 4,\r\n    "uninstalls": 0,\r\n    "updates": 0,\r\n    "returns": 0,\r\n    "net_downloads": 0,\r\n    "promos": 0,\r\n    "revenue": "0.00",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "0.00",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 0,\r\n    "standard_revenue": "0.00",\r\n    "gross_standard_revenue": "0.00",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 0,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "iap_revenue": "0.00",\r\n    "iap_returns_amount": "0.00",\r\n    "gross_iap_revenue": "0.00",\r\n    "gross_iap_returns_amount": "0.00",\r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-03"\r\n  }\r\n}'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱*していゐ 2025-02-11 03:37:34

回应没有错。响应中没有逃生序列,这就是二进制字符串显示新线的方式。 JSON中的Whitespace并不重要,因此可以直接解析有效载荷:

import urllib3

http = urllib3.PoolManager()
resp=http.urlopen('GET', 'https://api.appfigures.com/v2/values/time/-1/0/?client_key=12346')

这将带有JSON有效载荷的404响应:

{
  "status": 404,
  "message": "Not Found",
  "error_description": "Not Found",
  "additional": {
    "see": "http://docs.appfigures.com/"
  },
  "reference": ""
}

看起来像这样的二进制字符串:

>>> print(resp.data)
b'{\r\n  "status": 404,\r\n  "message": "Not Found",\r\n  "error_description": "Not Found",\r\n  "additional": {\r\n    "see": "http://docs.appfigures.com/"\r\n  },\r\n  "reference": ""\r\n}'

可以用json.loads来解析。

>>> content=json.loads(resp.data)
>>> content
{'status': 404, 'message': 'Not Found', 'error_description': 'Not Found', 'additional': {'see': 'http://docs.appfigures.com/'}, 'reference': ''}

内容是字典。要检索附加。请参阅 attribu:

>>> content['additional']['see']
'http://docs.appfigures.com/'

您发布的字符串dis not 包含任何数组:

>>> data=b'{\r\n  "2022-06-02": {\r\n    "downloads": 1,\r\n    "re_downloads": 34,\r\n    "uninstalls": 0,\r\n    "updates": 0,\r\n    "returns": 0,\r\n    "net_downloads": 1,\r\n    "promos": 0,\r\n    "revenue": "57.05",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "67.12",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 1,\r\n    "standard_revenue": "57.05",\r\n    "gross_standard_revenue": "67.12",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 1,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "0.00",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 0,\r\n    "standard_revenue": "0.00",\r\n    "gross_standard_revenue": "0.00",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 0,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "iap_revenue": "0.00",\r\n    "iap_returns_amount": "0.00",\r\n    "gross_iap_revenue": "0.00",\r\n    "gross_iap_returns_amount": "0.00",\r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-03"\r\n  }\r\n}'
b'{\r\n  "2022-06-02": {\r\n    "downloads": 1,\r\n    "re_downloads": 34,\r\n    "uninstalls": 0,\r\n    "updates": 0,\r\n    "returns": 0,\r\n    "net_downloads": 1,\r\n    "promos": 0,\r\n    "revenue": "57.05",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "67.12",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 1,\r\n    "standard_revenue": "57.05",\r\n    "gross_standard_revenue": "67.12",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 1,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 0,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    \r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-03"\r\n  }\r\n}'
>>> content=json.loads(data)
>>> pprint.pprint(content)
{'2022-06-02': {'app_downloads': 0,
                'app_returns': 0,
                'app_returns_amount': '0.00',
                'app_revenue': '0.00',
                'business_downloads': 0,
                'business_revenue': '0.00',
                'date': '2022-06-03',
                'downloads': 1,
                'edu_downloads': 0,
                'edu_revenue': '0.00',
                'gift_redemptions': 0,
                'gifts': 0,
                'gross_app_returns_amount': '0.00',
                'gross_app_revenue': '0.00',
                'gross_business_revenue': '0.00',
                'gross_edu_revenue': '0.00',
                'gross_iap_returns_amount': '0.00',
                'gross_iap_revenue': '0.00',
                'gross_returns_amount': '0.00',
                'gross_revenue': '0.00',
                'gross_standard_revenue': '0.00',
                'gross_subscription_returns_amount': '0.00',
                'gross_subscription_revenue': '0.00',
                'iap_amount': 0,
                'iap_returns': 0,
                'iap_returns_amount': '0.00',
                'iap_revenue': '0.00',
                'net_downloads': 1,
                'promos': 0,
                're_downloads': 34,
                'returns': 0,
                'returns_amount': '0.00',
                'revenue': '57.05',
                'standard_downloads': 0,
                'standard_revenue': '0.00',
                'subscription_purchases': 0,
                'subscription_returns': 0,
                'subscription_returns_amount': '0.00',
                'subscription_revenue': '0.00',
                'uninstalls': 0,
                'updates': 0}}

re_download是数字字段,而不是数组

>>> content['2022-06-02']['re_downloads']
34

There's nothing wrong with the response. There are no escape sequences in the response, that's how a binary string shows newlines. Whitespace in JSON isn't significant, so the payload can be parsed directly :

import urllib3

http = urllib3.PoolManager()
resp=http.urlopen('GET', 'https://api.appfigures.com/v2/values/time/-1/0/?client_key=12346')

This returns a 404 response with a JSON payload :

{
  "status": 404,
  "message": "Not Found",
  "error_description": "Not Found",
  "additional": {
    "see": "http://docs.appfigures.com/"
  },
  "reference": ""
}

Which looks like this as a binary string:

>>> print(resp.data)
b'{\r\n  "status": 404,\r\n  "message": "Not Found",\r\n  "error_description": "Not Found",\r\n  "additional": {\r\n    "see": "http://docs.appfigures.com/"\r\n  },\r\n  "reference": ""\r\n}'

This can be parsed with json.loads

>>> content=json.loads(resp.data)
>>> content
{'status': 404, 'message': 'Not Found', 'error_description': 'Not Found', 'additional': {'see': 'http://docs.appfigures.com/'}, 'reference': ''}

Content is a dictionary. To retrieve the additional.see attribu:

>>> content['additional']['see']
'http://docs.appfigures.com/'

The string you posted does NOT contain any arrays :

>>> data=b'{\r\n  "2022-06-02": {\r\n    "downloads": 1,\r\n    "re_downloads": 34,\r\n    "uninstalls": 0,\r\n    "updates": 0,\r\n    "returns": 0,\r\n    "net_downloads": 1,\r\n    "promos": 0,\r\n    "revenue": "57.05",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "67.12",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 1,\r\n    "standard_revenue": "57.05",\r\n    "gross_standard_revenue": "67.12",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 1,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "0.00",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 0,\r\n    "standard_revenue": "0.00",\r\n    "gross_standard_revenue": "0.00",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 0,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "iap_revenue": "0.00",\r\n    "iap_returns_amount": "0.00",\r\n    "gross_iap_revenue": "0.00",\r\n    "gross_iap_returns_amount": "0.00",\r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-03"\r\n  }\r\n}'
b'{\r\n  "2022-06-02": {\r\n    "downloads": 1,\r\n    "re_downloads": 34,\r\n    "uninstalls": 0,\r\n    "updates": 0,\r\n    "returns": 0,\r\n    "net_downloads": 1,\r\n    "promos": 0,\r\n    "revenue": "57.05",\r\n    "returns_amount": "0.00",\r\n    "edu_downloads": 0,\r\n    "gifts": 0,\r\n    "gift_redemptions": 0,\r\n    "edu_revenue": "0.00",\r\n    "gross_revenue": "67.12",\r\n    "gross_returns_amount": "0.00",\r\n    "gross_edu_revenue": "0.00",\r\n    "business_downloads": 0,\r\n    "business_revenue": "0.00",\r\n    "gross_business_revenue": "0.00",\r\n    "standard_downloads": 1,\r\n    "standard_revenue": "57.05",\r\n    "gross_standard_revenue": "67.12",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 1,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    "app_revenue": "0.00",\r\n    "app_returns_amount": "0.00",\r\n    "gross_app_revenue": "0.00",\r\n    "gross_app_returns_amount": "0.00",\r\n    "app_downloads": 0,\r\n    "app_returns": 0,\r\n    "iap_amount": 0,\r\n    "iap_returns": 0,\r\n    "subscription_purchases": 0,\r\n    "subscription_returns": 0,\r\n    \r\n    "subscription_revenue": "0.00",\r\n    "subscription_returns_amount": "0.00",\r\n    "gross_subscription_revenue": "0.00",\r\n    "gross_subscription_returns_amount": "0.00",\r\n    "date": "2022-06-03"\r\n  }\r\n}'
>>> content=json.loads(data)
>>> pprint.pprint(content)
{'2022-06-02': {'app_downloads': 0,
                'app_returns': 0,
                'app_returns_amount': '0.00',
                'app_revenue': '0.00',
                'business_downloads': 0,
                'business_revenue': '0.00',
                'date': '2022-06-03',
                'downloads': 1,
                'edu_downloads': 0,
                'edu_revenue': '0.00',
                'gift_redemptions': 0,
                'gifts': 0,
                'gross_app_returns_amount': '0.00',
                'gross_app_revenue': '0.00',
                'gross_business_revenue': '0.00',
                'gross_edu_revenue': '0.00',
                'gross_iap_returns_amount': '0.00',
                'gross_iap_revenue': '0.00',
                'gross_returns_amount': '0.00',
                'gross_revenue': '0.00',
                'gross_standard_revenue': '0.00',
                'gross_subscription_returns_amount': '0.00',
                'gross_subscription_revenue': '0.00',
                'iap_amount': 0,
                'iap_returns': 0,
                'iap_returns_amount': '0.00',
                'iap_revenue': '0.00',
                'net_downloads': 1,
                'promos': 0,
                're_downloads': 34,
                'returns': 0,
                'returns_amount': '0.00',
                'revenue': '57.05',
                'standard_downloads': 0,
                'standard_revenue': '0.00',
                'subscription_purchases': 0,
                'subscription_returns': 0,
                'subscription_returns_amount': '0.00',
                'subscription_revenue': '0.00',
                'uninstalls': 0,
                'updates': 0}}

re_download is a numeric field, not an array

>>> content['2022-06-02']['re_downloads']
34
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文