求助:通过Steam接口获取游戏评论并导入MySQL/导出Excel及新手教程
嘿,我来帮你一步步搞定Steam游戏评论的获取、存储和导出,完全适配你作为JSON和Steamworks新手的需求:
一、Steam GetReviews 接口基础入门(新手友好)
先从最基础的接口调用逻辑搞起,不用怕复杂:
- 先明确接口的核心参数:这个接口是Steam给开发者/合作伙伴提供的,调用时必须带上
appid(你的目标游戏ID)、language(要获取的评论语言)、num_per_page(每页返回的评论条数)这些关键参数。你可以先用curl命令手动测试调用,快速看到返回结果:
执行后你会看到标准的JSON格式数据,里面的curl "https://partner.steamgames.com/doc/store/getreviews?appid=你的游戏ID&language=chinese&num_per_page=100"author(评论者信息)、review(评论内容)等字段,就是你后续要完全匹配的数据库/Excel结构。 - 注意权限问题:这个接口只有该游戏的开发者或合作伙伴才能正常访问,你得用Steam Partner账号的权限来调用,不然会返回权限错误哦。
二、把评论数据存入MySQL(结构完全匹配接口返回)
既然要求数据库结构和接口返回完全一致,咱们直接把JSON里的字段一一映射成MySQL的列:
- 先创建数据库和表:
先创建一个名为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 ); - 用Python实现数据导入(新手友好):
作为JSON新手,用Python来处理数据是最省心的,步骤清晰:- 用
requests库调用接口获取JSON数据 - 解析嵌套的JSON结构,把
author里的子字段拆成单独的列 - 用
pymysql库把解析好的数据插入到MySQL表中
给你一段可以直接参考的代码片段:
这段代码会把接口返回的评论数据完整插入到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() - 用
三、直接导出为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
相关产品推荐
相关产品推荐

