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

求助:通过Steam接口获取游戏评论并导入MySQL/导出Excel及新手教程

嘿,我来帮你一步步搞定Steam游戏评论的获取、存储和导出,完全适配你作为JSON和Steamworks新手的需求:

一、Steam GetReviews 接口基础入门(新手友好)

先从最基础的接口调用逻辑搞起,不用怕复杂:

  • 先明确接口的核心参数:这个接口是Steam给开发者/合作伙伴提供的,调用时必须带上appid(你的目标游戏ID)、language(要获取的评论语言)、num_per_page(每页返回的评论条数)这些关键参数。你可以先用curl命令手动测试调用,快速看到返回结果:
    curl "https://partner.steamgames.com/doc/store/getreviews?appid=你的游戏ID&language=chinese&num_per_page=100"
    
    执行后你会看到标准的JSON格式数据,里面的author(评论者信息)、review(评论内容)等字段,就是你后续要完全匹配的数据库/Excel结构。
  • 注意权限问题:这个接口只有该游戏的开发者或合作伙伴才能正常访问,你得用Steam Partner账号的权限来调用,不然会返回权限错误哦。
二、把评论数据存入MySQL(结构完全匹配接口返回)

既然要求数据库结构和接口返回完全一致,咱们直接把JSON里的字段一一映射成MySQL的列:

  1. 先创建数据库和表:
    先创建一个名为steam_reviews的数据库,再创建game_reviews表,字段完全对应接口返回的结构(包括author里的子字段):
    CREATE DATABASE IF NOT EXISTS steam_reviews;
    USE steam_reviews;
    CREATE TABLE IF NOT EXISTS game_reviews (
        review_id VARCHAR(255) PRIMARY KEY, -- 用评论的唯一ID作为主键
        author_steamid VARCHAR(255),
        author_num_games_owned INT,
        author_num_reviews INT,
        author_playtime_forever INT,
        author_playtime_last_two_weeks INT,
        author_playtime_at_review INT,
        author_last_played BIGINT,
        review TEXT,
        voted_up BOOLEAN,
        votes_up INT,
        votes_funny INT,
        weighted_vote_score FLOAT,
        comment_count INT,
        timestamp_created BIGINT,
        timestamp_updated BIGINT,
        steam_purchase BOOLEAN,
        received_for_free BOOLEAN,
        written_during_early_access BOOLEAN
    );
    
  2. 用Python实现数据导入(新手友好):
    作为JSON新手,用Python来处理数据是最省心的,步骤清晰:
    • 用requests库调用接口获取JSON数据
    • 解析嵌套的JSON结构,把author里的子字段拆成单独的列
    • 用pymysql库把解析好的数据插入到MySQL表中
      给你一段可以直接参考的代码片段:
    import requests
    import pymysql
    
    # 调用GetReviews接口
    url = "https://partner.steamgames.com/doc/store/getreviews"
    params = {
        "appid": "替换成你的游戏ID",
        "language": "chinese",
        "num_per_page": 100
    }
    response = requests.get(url, params=params)
    reviews_data = response.json()["reviews"]
    
    # 连接本地MySQL数据库
    db = pymysql.connect(
        host="localhost",
        user="你的MySQL用户名",
        password="你的MySQL密码",
        database="steam_reviews"
    )
    cursor = db.cursor()
    
    # 逐条插入评论数据
    for review in reviews_data:
        author_info = review["author"]
        insert_sql = """
        INSERT INTO game_reviews 
        (review_id, author_steamid, author_num_games_owned, author_num_reviews, author_playtime_forever, author_playtime_last_two_weeks, author_playtime_at_review, author_last_played, review, voted_up, votes_up, votes_funny, weighted_vote_score, comment_count, timestamp_created, timestamp_updated, steam_purchase, received_for_free, written_during_early_access)
        VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
        """
        values = (
            review["review_id"],
            author_info["steamid"],
            author_info["num_games_owned"],
            author_info["num_reviews"],
            author_info["playtime_forever"],
            author_info["playtime_last_two_weeks"],
            author_info["playtime_at_review"],
            author_info["last_played"],
            review["review"],
            review["voted_up"],
            review["votes_up"],
            review["votes_funny"],
            review["weighted_vote_score"],
            review["comment_count"],
            review["timestamp_created"],
            review["timestamp_updated"],
            review["steam_purchase"],
            review["received_for_free"],
            review["written_during_early_access"]
        )
        cursor.execute(insert_sql, values)
    # 提交事务并关闭连接
    db.commit()
    db.close()
    
    这段代码会把接口返回的评论数据完整插入到MySQL表中,结构和接口返回完全一致。
三、直接导出为Excel表格(替代方案)

如果你暂时不想折腾数据库,直接导出Excel更简单,还是用Python的pandas库,一行代码就能搞定结构映射:

import requests
import pandas as pd

# 调用接口获取数据
url = "https://partner.steamgames.com/doc/store/getreviews"
params = {
    "appid": "替换成你的游戏ID",
    "language": "chinese",
    "num_per_page": 100
}
response = requests.get(url, params=params)
reviews_data = response.json()["reviews"]

# 自动展开嵌套的JSON结构,导出为Excel
df = pd.json_normalize(reviews_data)
df.to_excel("steam_game_reviews.xlsx", index=False)

生成的Excel表格里的列会完全对应接口返回的结构,比如author.steamid、review等字段,不需要你手动调整。

四、新手向的深度学习方向

作为JSON和Steamworks新手,推荐你从这几个方向深入学习:

  • JSON基础:可以查看Python官方文档中的json模块教程,学习如何解析、遍历嵌套的JSON结构,掌握提取字段的方法。
  • Steamworks接口细节:直接在Steam Partner后台的文档中心搜索“GetReviews”,里面有所有参数的详细解释、权限要求以及返回字段的完整定义,这是最权威的资料。
  • Python数据处理:学习pymysql库的官方教程掌握数据库操作,学习pandas库的基础教程掌握数据导出和处理技巧,这些都是你后续扩展功能的基础。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:32:48