Python调用Pocket API获取结果仅生成单行的问题如何解决?
问题根源
Pocket API返回的JSON结构里,所有存储内容都嵌套在list字段中,该字段是键为条目ID、值为单条内容的字典。直接对整个返回结果做归一化,会把每个条目的字段都拆为独立列,导致所有内容合并为一行。
修正代码
import pandas as pd import requests # GET request for data in JSON format parameters = { 'consumer_key' : '9...9', 'access_token' : 'c...b', 'detailType' : 'complete', 'count' : '10' } response = requests.get('https://getpocket.com/v3/get', params=parameters) json_data = response.json() # 仅提取list字段下的所有条目内容转成列表,再做归一化 item_list = list(json_data['list'].values()) df = pd.json_normalize(item_list) print(df)
原代码中导入的json、collections、urllib相关模块、flatten_json等在该实现中不需要使用,可以按需移除。
可选扩展:保留条目ID
如果需要将Pocket的条目ID作为单独列存入DataFrame,可以调整为以下逻辑:
item_list = [] for item_id, item_content in json_data['list'].items(): # 将条目ID新增为内容的一个字段 item_content['pocket_item_id'] = item_id item_list.append(item_content) df = pd.json_normalize(item_list)
内容的提问来源于stack exchange,提问作者amarokWPcom
相关产品推荐
相关产品推荐

