You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将pytrends的related_queries结果转换为标准JSON格式?

把pytrends相关查询数据转成标准JSON的方法

问题本质

pytrends返回的related_queries_dict是嵌套结构,里面的top和rising都是DataFrame对象,直接转JSON会因为DataFrame的特殊格式失败,必须先把每个DataFrame转换成JSON兼容的列表/字典结构,再整体序列化。

完整实现步骤

  • 遍历related_queries_dict里的每个DataFrame,用df.to_dict('records')把DataFrame转成行字典组成的列表,这是JSON能识别的数组格式。
  • 用Python内置的json.dumps()把处理后的嵌套结构转换成标准JSON字符串。

可运行示例代码

from pytrends.request import TrendReq
import json

# 初始化请求
pytrend = TrendReq(hl='zh-CN', tz=8*60)
# 设置关键词
pytrend.build_payload(kw_list=['人工智能'])
# 获取相关查询数据
related_queries = pytrend.related_queries()

# 处理数据:把每个DataFrame转成JSON兼容的列表
processed = {}
for key, df in related_queries['人工智能'].items():
    processed[key] = df.to_dict('records')

# 生成标准JSON
json_str = json.dumps(processed, indent=4, ensure_ascii=False)
print(json_str)

关键函数解释

  • df.to_dict('records'):把DataFrame的每一行转成一个字典,所有行打包成列表,刚好对应JSON里的数组结构。
  • json.dumps():负责把Python对象序列化成JSON字符串,indent=4用来格式化输出,ensure_ascii=False解决中文乱码问题。

踩坑提示

  • 如果返回的related_queries为空,检查关键词是否合法,或者调整build_payload里的时间范围(timeframe)、地域(geo)参数。
  • 若DataFrame里有缺失值,to_dict()会自动保留None,JSON序列化后变成null,符合标准格式。

内容的提问来源于stack exchange,提问作者Jsbeginner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 21:06:06