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

如何用Python拆分Lua单行长字符串中的数据为独立可操作对象?

处理Lua单行游戏数据的Python方案

核心需求

从单行Lua长字符串中提取data={后的所有{值1,值2,值3,值4}格式对象,转换为可独立操作的JSON或表格格式。

实现步骤

1. 定位并提取data字段核心内容

先通过正则匹配锁定data字段包裹的所有对象内容,跳过无关的Lua语法部分:

import re
import json
import pandas as pd

# 假设lua_data是读取到的单行Lua完整数据字符串
lua_data = "你的单行Lua数据内容..."

# 匹配data={}到结尾}}]]之间的核心数据
match = re.search(r'data=\{(.*?)\}\]\]', lua_data, re.DOTALL)
if not match:
    raise ValueError("未找到目标data字段内容")

data_content = match.group(1)

2. 拆分每个独立对象

用正则匹配所有{...}格式的对象,拆分出每个对象的4个值:

# 匹配所有{值1,值2,值3,值4}格式的对象
object_pattern = re.compile(r'\{([^}]+)\}')
objects = object_pattern.findall(data_content)

# 解析每个对象为列表
parsed_data = []
for obj in objects:
    values = [v.strip() for v in obj.split(',')]
    # 确保每个对象严格包含4个值
    if len(values) == 4:
        parsed_data.append(values)

3. 转换为目标格式

转JSON格式

json_result = json.dumps(parsed_data, indent=2, ensure_ascii=False)
# 保存到文件
with open('auction_data.json', 'w', encoding='utf-8') as f:
    f.write(json_result)

转表格(CSV/Excel)

对应数据里的fields字段(itemString, minBuyout, numAuctions, marketValueRecent)生成结构化表格:

df = pd.DataFrame(
    parsed_data,
    columns=["itemString", "minBuyout", "numAuctions", "marketValueRecent"]
)
# 保存为CSV
df.to_csv('auction_data.csv', index=False, encoding='utf-8')
# 或保存为Excel
df.to_excel('auction_data.xlsx', index=False)

注意事项

  • 若数据中存在带逗号的复杂值(如带引号的字符串),需调整拆分逻辑,可改用Lua解析库(如lupa)直接解析Lua代码,避免正则的局限性。
  • 正则的re.DOTALL参数确保.能匹配所有字符(包括换行,虽然原数据是单行,但兼容潜在格式变动)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:43:15