簡體   English   中英

如何從 API 連接中提取字節類型的 JSON 數據,並將選定的列轉換為 python 數據框

[英]How can I extract bytes type JSON data from an API connection, and convert selected columns to a python data frame

以下是我的 API 連接代碼

import http.client

conn = http.client.HTTPSConnection("instagram47.p.rapidapi.com")

headers = {
    'x-rapidapi-host': "instagram47.p.rapidapi.com",
    'x-rapidapi-key': "fbac45a2a1mshd1552a6a4b5c40dp11f0fejsn87c5e6ebf342"
    }


conn.request("GET", "/user_following?userid=38500199922", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8")) ##This is byte data. 
d_string=json.dumps(d) #converting to strings using json.dumps
print(d_string)

結果

{"body": {"page_size": 200, "next_max_id": "50", "status": "ok", "big_list": true, "users": [{"is_private": true, "pk": 10119571306, "full_name": "geraline lol \ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfa4", "profile_pic_id": "2714545912561066205_10119571306", "username": "g3raline__", "has_anonymous_profile_picture": false, "is_favorite": false, "latest_reel_media": 0, "follow_friction_type": 0, "has_highlight_reels": false, "profile_pic_url": "https://scontent-mxp2-1.cdninstagram.com/v/t51.2885-19/s150x150/260402731_244731964418125_2728204070967694144_n.jpg?_nc_ht=scontent-mxp2-1.cdninstagram.com&_nc_cat=101&_nc_ohc=yFi0ME-BwLoAX9VB2ws&edm=ALB854YBAAAA&ccb=7-4&oh=00_AT_hG7G8rRZ8kXgBjvTUXDmsKY0MdTkf-XxJXMZsmbLRWA&oe=61EE3BA7&_nc_sid=04cb80", "is_verified": false}, {"is_private": true, "pk": 29469548019, "full_name": "", "profile_pic_id": "2742223021579729541_29469548019", "username": "melannyski", "has_anonymous_profile_picture": false, "is_favorite": false, "latest_reel_media": 0, "follow_friction_type": 0, "has_highlight_reels": false, "profile_pic_url": "https://scontent-mxp2-1.cdninstagram.com/v/t51.2885-19/s150x150/271273719_272733284842985_2676050159817911915_n.jpg?_nc_ht=scontent-mxp2-1.cdninstagram.com&_nc_cat=105&_nc_ohc=YYVyklHjfsgAX_eQwZc&edm=ALB854YBAAAA&ccb=7-4&oh=00_AT_TMiNQTrq3xuFWg4WIdxyv_MRfdxSwjsnKUplA1FWu5w&oe=61ED7336&_nc_sid=04cb80", "is_verified": false}, {"is_private": false, "pk": 53892051, "full_name": "Courtney Dickson", "profile_pic_id": "2733057419432607865_53892051", "username": "dirty_dickson1", "has_anonymous_profile_picture": false, "is_favorite": false, "latest_reel_media": 0, "follow_friction_type": 0, "has_highlight_reels": false, "profile_pic_url": "https://scontent-mxp2-1.cdninstagram.com/v/t51.2885-19/s150x150/269483477_210224671299081_9007717381559573256_n.jpg?_nc_ht=scontent-mxp2-1.cdninstagram.com&_nc_cat=109&_nc_ohc=j-SUMBR2fWYAX-TR5Bz&edm=ALB854YBAAAA&ccb=7-4&oh=00_AT8gtIqlMNabJb0c-vQkDcSVyyl9o0nErEdhaRzOp5jmig&oe=61EDB143&_nc_sid=04cb80", "is_verified": false}]}, "status": "Success", "statusCode": 404}

期望的結果
我想要一個來自用戶的所有用戶名和全名的列表,比如 python 數據框中的這個列表:

用戶名 全名
臟迪克森1 考特尼·迪克森
一些用戶名 一些全名

您可以通過傳遞字典列表(視為行)或其中值是列表(視為列)的單個字典來制作 pandas DataFrame 對象。

這里我們讀取 json 數據,然后通過從列表中提取值來創建數據框,並將它們放入單獨的字典中(數據框的行)

data = json.loads(data.decode("utf-8"))
df = pd.DataFrame([{"username": u["username"], "full_name": u["full_name"]} for u in data["body"]["users"]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM