CN109582726B - 数据表的处理方法和装置 - Google Patents
数据表的处理方法和装置 Download PDFInfo
- Publication number
- CN109582726B CN109582726B CN201811550200.9A CN201811550200A CN109582726B CN 109582726 B CN109582726 B CN 109582726B CN 201811550200 A CN201811550200 A CN 201811550200A CN 109582726 B CN109582726 B CN 109582726B
- Authority
- CN
- China
- Prior art keywords
- data
- version
- modification
- type
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据表的处理方法和装置,根据数据读取命令的参数,获取数据表的名称和数据表对应的数据格式文件的名称,当数据读取命令用于读取第二版本数据时,根据预设的合并规则将数据表中的数据与修改表中的数据进行合并得到第二版本数据,该修改表中存储有第二版本数据相对于第一版本数据的变化数据,根据数据表对应的数据格式文件将第二版本数据转换为预设可识别数据。通过为数据表维护一个修改表,如果数据表的第二版本数据相对于第一版本数据有变化,那么只需要对该修改表进行修改即可,如果第二版本数据相对于第一版本数据没有变换,只需要修改数据表,从而减少了数据表的数据维护量。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据表的处理方法和装置。
背景技术
游戏公司在国内研发并发行一款游戏之后,如果市场反应良好,且符合在海外发行的条件,往往要考虑推出游戏的海外版。为了节省成本,海外版与国内版往往要共用一份游戏代码,美术资源,策划配置的数据表等游戏资源,那么首先需要解决的一个重要问题就是数据表的兼容性问题。在游戏中经常使用逗号分隔值文件格式(Comma-SeparatedValues,简称CSV)表存储游戏数据,CSV是一种通用的、相对简单的文件格式,CSV以纯文本形式存储表格数据(数字和文本)。
现有技术中,将国内游戏资源中的多份数据表复制一份作为海外表格而独立维护,策划每次修改某个数据表的时候,需要同时考虑修改国内和海外两份数据表。
但是,同时维护国内版和国际版两份数据表,工作量大,维护成本高,并且容易出错。
发明内容
本发明提供一种数据表的处理方法和装置,减少了数据表的数据维护量。
本发明第一方面提供一种数据表的处理方法,包括:
接收数据读取命令,所述数据读取命令用于读取数据表的第一版本数据或第二版本数据,所述数据表中的数据为所述第一版本数据,所述数据表对应的修改表中存储有所述第二版本数据相对于所述第一版本数据的变化数据;
根据所述数据读取命令的参数,获取所述数据表的名称和所述数据表对应的数据格式文件的名称;
当所述数据读取命令用于读取所述第一版本数据时,根据所述数据表对应的数据格式文件将所述数据表中的数据转换为预设可识别数据;
当所述数据读取命令用于读取所述第二版本数据时,根据预设的合并规则将所述数据表中的数据与所述修改表中的数据进行合并,得到所述第二版本数据;
根据所述数据表对应的数据格式文件将所述第二版本数据转换为预设可识别数据;
将所述第一版本数据或第二版本数据转换后的预设可识别数据存储到文件中。
可选的,所述数据表的名称和所述修改表的名称具有关联关系,所述数据表的第一版本数据为第一预设数据,所述数据表的第二版本数据为第二预设数据。
可选的,所述根据所述数据表对应的数据格式文件将所述数据表中的数据转换为预设可识别数据,包括:
根据所述数据表的名称,将所述数据表从磁盘读取到内存;
根据所述数据表对应的数据格式文件的名称,将所述数据格式文件从磁盘读取到所述内存;
根据所述数据格式文件,将所述数据表中的数据转换为预设可识别数据。
可选的,所述根据预设的合并规则将所述数据表中的数据与所述修改表中的数据进行合并,得到所述第二版本数据,包括:
根据所述数据表的名称和所述修改表的名称,将所述数据表和所述修改表从磁盘读取到内存;
根据所述预设的合并规则将所述数据表和所述修改表中数据进行合并,得到所述第二版本数据;
所述根据所述数据表对应的数据格式文件将所述第二版本数据转换为预设可识别数据,包括:
根据所述数据表对应的数据格式文件的名称,将所述数据格式文件从磁盘读取到所述内存;
根据所述数据格式文件将所述第二版本数据转换为预设可识别数据。
可选的,所述修改表中包括以下数据中的至少一种:所述第二版本数据相对于所述第一版本数据增加的数据,所述第二版本数据相对于所述第一版本数据删除的数据,所述第二版本数据相对于所述第一版本数据修改的数据。
可选的,所述根据预设的合并规则将所述数据表中的数据与所述修改表中的数据进行合并,得到所述第二版本数据,包括:
逐行读取所述修改表中的数据,确定所述修改表中的各行数据的类型,所述类型为删除、增加或者修改类型;
根据所述修改表中各行数据的类型和所述修改表中的数据,对所述数据表中的数据进行修改,得到所述第二版本数据。
可选的,所述根据所述修改表中各行数据的类型和所述修改表中的数据,对所述数据表中的数据进行修改,得到所述第二版本数据,包括:
当所述修改表中的第一目标行的数据的类型为增加类型时,将所述第一目标行的数据增加到所述数据表中;
当所述修改表中的第二目标行的数据的类型为删除类型时,从所述数据表中删除所述第二目标行的数据;
当所述修改表中的第三目标行的数据的类型为修改类型时,对所述数据表中与所述第三目标行的标识相同的数据行的数据进行修改。
可选的,所述逐行读取所述修改表中的数据,确定所述修改表中的各行数据的类型,包括:
当所述修改表中的当前行的删除标识指示删除所述当前行时,确定所述当前行的数据的类型为删除类型,所述修改表中的每行数据具有删除标识,所述删除标识用于指示是否删除该数据;
当所述当前行的标识不包含在所述数据表中时,确定所述当前行的数据的类型为增加类型;
当所述当前行的标识包含在所述数据表中时,确定所述当前行的数据的类型为修改类型。
本发明第二方面提供一种数据表的处理装置,包括:
接收模块,用于接收数据读取命令,所述数据读取命令用于读取数据表的第一版本数据或第二版本数据,所述数据表中的数据为所述第一版本数据,所述数据表对应的修改表中存储有所述第二版本数据相对于所述第一版本数据的变化数据;
获取模块,用于根据所述数据读取命令的参数,获取所述数据表的名称和所述数据表对应的数据格式文件的名称;
转换模块,用于当所述数据读取命令用于读取所述第一版本数据时,根据所述数据表对应的数据格式文件将所述数据表中的数据转换为预设可识别数据;
合并模块,用于当所述数据读取命令用于读取所述第二版本数据时,根据预设的合并规则将所述数据表中的数据与所述修改表中的数据进行合并,得到所述第二版本数据;
所述转换模块,还用于根据所述数据表对应的数据格式文件将所述第二版本数据转换为预设可识别数据;
存储模块,用于将所述第一版本数据或第二版本数据转换后的预设可识别数据存储到文件中。
可选的,所述数据表的名称和所述修改表的名称具有关联关系,所述数据表的第一版本数据为第一预设数据,所述数据表的第二版本数据为第二预设数据。
可选的,所述转换模块具体用于:
根据所述数据表的名称,将所述数据表从磁盘读取到内存;
根据所述数据表对应的数据格式文件的名称,将所述数据格式文件从磁盘读取到所述内存;
根据所述数据格式文件,将所述数据表中的数据转换为预设可识别数据。
可选的,所述合并模块具体用于:
根据所述数据表的名称和所述修改表的名称,将所述数据表和所述修改表从磁盘读取到内存;
根据所述预设的合并规则将所述数据表和所述修改表中数据进行合并,得到所述第二版本数据;
所述转换模块具体用于:
根据所述数据表对应的数据格式文件的名称,将所述数据格式文件从磁盘读取到所述内存;
根据所述数据格式文件将所述第二版本数据转换为预设可识别数据。
可选的,所述修改表中包括以下数据中的至少一种:所述第二版本数据相对于所述第一版本数据增加的数据,所述第二版本数据相对于所述第一版本数据删除的数据,所述第二版本数据相对于所述第一版本数据修改的数据。
可选的,所述合并模块具体用于:
逐行读取所述修改表中的数据,确定所述修改表中的各行数据的类型,所述类型为删除、增加或者修改类型;
根据所述修改表中各行数据的类型和所述修改表中的数据,对所述数据表中的数据进行修改,得到所述第二版本数据。
可选的,所述合并模块具体用于:
当所述修改表中的第一目标行的数据的类型为增加类型时,将所述第一目标行的数据增加到所述数据表中;
当所述修改表中的第二目标行的数据的类型为删除类型时,从所述数据表中删除所述第二目标行的数据;
当所述修改表中的第三目标行的数据的类型为修改类型时,对所述数据表中与所述第三目标行的标识相同的数据行的数据进行修改。
可选的,所述合并模块具体用于:
当所述修改表中的当前行的删除标识指示删除所述当前行时,确定所述当前行的数据的类型为删除类型,所述修改表中的每行数据具有删除标识,所述删除标识用于指示是否删除该数据;
当所述当前行的标识不包含在所述数据表中时,确定所述当前行的数据的类型为增加类型;
当所述当前行的标识包含在所述数据表中时,确定所述当前行的数据的类型为修改类型。
本发明第三方面提供一种电子设备,包括:处理器、存储器和收发器,所述存储器用于存储指令,所述收发器用于和其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述电子设备执行如本发明第一方面以及各可选方式所述的方法。
本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如本发明第一方面以及各可选方式所述的方法。
本发明提供的数据表的处理方法和装置,通过为数据表维护一个修改表,如果数据表的第二版本数据相对于第一版本数据有变化,那么只需要对该修改表进行修改即可,如果第二版本数据相对于第一版本数据没有变换,只需要修改数据表,不需要对修改表进行修改,从而减少了数据表的数据维护量,并且对两个版本的数据起到了一定的隔离和保护作用。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明实施例一提供的数据表的处理方法的流程图;
图2为国内版的商城道具.csv的一种示意图;
图3为国内版的商城道具.csv对应的海外修改表的一种示意图;
图4为本发明实施例二提供的数据表的处理方法的流程图;
图5为本发明实施例三提供的数据表的处理装置的结构示意图;
图6为本发明实施例四提供的一种电子设备的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1为本发明实施例一提供的数据表的处理方法的流程图,本实施例的方法可以应用在电子设备中,该电子设备可以是手机、平板电脑、个人电脑等,还可以应用在服务器中,如图1所示,本实施例提供的方法包括以下步骤:
步骤S101、接收数据读取命令。
该数据读取命令用于读取数据表的第一版本数据或第二版本数据,数据表中的数据为第一版本数据,数据表对应的修改表中存储有第二版本数据相对于第一版本数据的变化数据。
该数据表具有第一版本数据和第二版本数据,第一版本数据为第一预设数据,第二版本数据为第二预设数据。当该数据表用于存储游戏资源时,该第一预设数据可以为游戏资源的国内数据,该第二预设数据可以为游戏资源的国外数据。通常,第一版本数据和第二版本数据中的大部分数据都相同,只有少部分数据不同。
当然,该数据表的第一版本数据和第二版本数据不限于游戏资源的数据,还可以是其他数据。当该数据表用于存储游戏资源时,第一版本数据和第二版本数据也不限于游戏资源的国内数据和国外数据,还可以是游戏资源在同一国家不同区域的数据。
其中,数据表中的数据为第一版本数据,该数据表还有一个修改表,该修改表中存储有第二版本数据相对于第一版本数据的变化数据,如此,只需要维护一套数据表,在数据表对应的修改表中只需要保存第二版本数据相对于第一版本数据的变化数据。变化数据包括增加的数据、删除的数据和修改的数据。数据表的名称和修改表的名称具有关联关系,后续在读取数据时根据数据表的名称和修改表的名称自动识别这两张表。
相应的,修改表中包括以下数据中的至少一种:第二版本数据相对于第一版本数据增加的数据,第二版本数据相对于第一版本数据删除的数据,第二版本数据相对于第一版本数据修改的数据。
在对该数据表进行修改时,如果第二版本数据相对于第一版本数据没有变化,那么只需要修改该数据表(即第一版本数据)即可,如果第二版本数据相对于第一版本数据有变化,那么只需要修改该修改表即可。
由于第一版本数据和第二版本数据大都是相同的,因此,大部分修改只需要对数据表进行修改即可,现有技术针对数据表的任何修改,都需要对第一版本数据和第二版本数据分别进行修改,因此,相比于现有技术,本发明大大减少了数据维护量。
另外,第一版本数据不会因为第二版本数据的修改而修改,起到了一定的隔离和保护作用,保证不会因为第二版本数据的修改导致第一版本数据错误。
以游戏数据为例,本实施例中需要制定一套填表规范,针对已有的一套国内版数据表,如果在海外版中,策划对部分表的内容有增删改的需求,则按照这套填表规范进行配表操作。
以商城道具表.csv为例,如果海外版可以直接使用这个表格,则就不用做额外的操作,如果海外版对这个表格有修改的需求,则需要生成一个商城道具表-海外修改.csv,针对国外版表格的任何修改都在这个商城道具表-海外修改.csv中记录,原有的商城道具表.csv不包含海外版的修改内容。
假设游戏的国内版资源共有N张xxx.csv表,如果有海外改表的需求,则需要新增M张xxx-海外修改.csv,其中M<=N,每个数据表最多只有一个修改表。如果针对xxx.csv有海外修改的需求,那么对应的要生成一份xxx-海外修改.csv作为对应的海外修改表,原有的国内版数据表的命名中不能包含字符串:-海外修改,以免造成混淆。
图2为国内版的商城道具.csv的一种示意图,如图2所示,国内版的商城道具.csv中配置了3个商品,商品编号分别为101、102和103,每一行表示一个商品,商品编号具有唯一性,唯一标识一行商品。针对海外版,策划需要修改部分商品的价格,需要新增一个专门针对海外玩家的商品,需要删除一个不能在国外上架的商品。在这些增删改的需求下,策划要创建一个海外修改表。
图3为国内版的商城道具.csv对应的海外修改表的一种示意图,如图3所示,国内版的商城道具.csv对应的海外修改表的命名为商城道具表-海外修改.csv,海外版中对商品编号为101的商品购买现价进行了修改,海外版中价格提升了10金币。
如图3所示,相对于商城道具表.csv,商城道具表-海外修改.csv中多了一列:删除标识,删除标识用于指示是否删除该数据,针对某一行商品,如果该的删除标识填了1,表示这件商品在海外版中需要删除。在海外版中,由于一些文化原因,商品编号为103的商品不能上架,所以在海外修改表中可以看到商品编号为103的这一行的删除标识填写了1。
海外版需要上架一个特色商品,商品编号为104,所以在海外修改表中多了商品编号为104的一行,这样需要注意的是:在商城道具表.csv中不能有商品编号为104的商品,否则就不是新增,而是修改了。
对比图2和图3,可以看到图2中商品编号多了一个*号标志,该标志表示修改表中该列用于唯一标识一个商品,即唯一标识一行数据,在数据读取过程中,根据该标志将商城道具表.csv和商城道具表-海外修改.csv这两张表中的每一行匹配对应起来,以确定哪些行是新增,哪些行是删除,哪些行是修改。
需要说明的是,有的数据表中需要多列数据组合起来才能唯一标识一行,相应的,在修改表会有多列的表头前面有*标志。
以图2和图3所示例子为例,通过本实施例的方法,图2中共有850行数据,图3中只需要维护3行数据,而现有技术中,国内版和海外版分别维护时,每张表都需要850行(海外版删除了一行,增加了一行,总行数没有变换)。并且对国内版和海外版分别维护时,对于一些海外版和国内版都需要修改的数据,需要对两张表分别修改,容易导致错误,而本实施例的方法如果国外版相对于国内版没有变化,那么只需要对国内版数据进行修改,减少了修改的工作量,并且能够减少错误的发生。
另外,修改表的数据通常很少,所以采用本实施例的方法也能够减少数据表占用的存储空间。
步骤S102、根据数据读取命令的参数,获取数据表的名称和数据表对应的数据格式文件的名称。
数据读取命令行的参数中包括数据表的名称和数据表对应的数据格式文件的名称。例如,读取命令行为py_gen,则读取命令行的参数如下:py_gen arg1 arg2 arg3....,其中arg1 arg2 arg3等为读取命令行的参数。
本实施例中,不论数据读取命令用于读取数据表的第一版本数据还是第二版本数据,数据表的名称都相同,例如,都为N1.csv。第一版本数据和第二版本数据使用的数据格式文件可能相同,也可以不同。
数据格式文件用于描述数据表中每一列的数据类型,比如:整数(int),浮点数(float),字符串(str),由多个整数组成的列表(utils.TupleInt)等。本实施例中以游戏的逻辑采用Python编程语言编写为例进行说明,仍然以商城道具表.csv为例,则商城道具表.csv的数据格式文件shop_goods_type.py为:
这里以表格的部分列为例,上述ATTR_DEF中描述了属性的对应关系,比如商品编号,有两个属性:id和int,id表示这一列导出为游戏数据后,在游戏数据中的标识;int定义了这一列数据的类型为整数,程序将数据表中的数据读入到内存中时,根据数据的类型将数据转换为需要的类型。
步骤S103、当数据读取命令用于读取第二版本数据时,根据预设的合并规则将数据表中的数据与修改表中的数据进行合并,得到第二版本数据。
当数据读取命令用于读取第二版本数据时,先判断数据表的目录下是否有修改表,如果数据表的目录下有对应的修改表,则根据预设的合并规则将数据表中的数据与修改表中的数据进行合并。如果数据表的目录下没有对应的修改表,则根据数据表对应的数据格式文件将数据表中的数据转换为预设可识别数据。
示例性的,根据数据表的名称和修改表的名称,将数据表和修改表从磁盘读取到内存,根据预设的合并规则将数据表和修改表中数据进行合并,得到第二版本数据。
以数据表为csv格式,游戏的逻辑采用python语言为例,可以选择使用Python的第三方库:csv库,将N1.csv(数据表的名称)的内容和N1_海外修改.csv(即修改表)的内容分别读入到内存中,以二维数组的形式存储表格数据,二维数组的第一维表示行,对应的是表格中的每一行数据,二维数组的第二维表示列,对应的是每一行的每一列单元格的内容,这样N1.csv中的每个数据都会以字符串的形式保存在内存中,最后得到的二维数组命名为data data_origin,N1_海外修改.csv的内容对应的二维数组的命名为data_oversea。
在合并时,逐行读取修改表中的数据,确定修改表中的各行数据的类型,该类型为删除、增加或者修改类型,根据修改表中各行数据的类型和修改表中的数据,对数据表中的数据进行修改,得到第二版本数据。
具体的,当修改表中的第一目标行的数据的类型为增加类型时,将第一目标行的数据增加到数据表中,当修改表中的第二目标行的数据的类型为删除类型时,从数据表中删除第二目标行的数据,当修改表中的第三目标行的数据的类型为修改类型时,对数据表中与第三目标行的标识相同的数据行的数据进行修改。
示例性的,可以通过如下方式确定各行数据的类型:
当修改表中的当前行的删除标识指示删除所述当前行时,确定当前行的数据的类型为删除类型,修改表中的每行数据具有删除标识,删除标识用于指示是否删除该数据。
当当前行的标识不包含在数据表中时,确定当前行的数据的类型为增加类型,当前行的标识用于唯一标识一行数据,当前行的标示可能是一列数据的字段,也可能是多列数据的组合字段。
当当前行的标识包含在数据表中时,确定当前行的数据的类型为修改类型。
通过上述合并操作,得到一份合并后的数据表内容data_new,data_new中的数据即为第二版本数据。
步骤S104、根据数据表对应的数据格式文件将第二版本数据转换为预设可识别数据。
当数据表为用于存储游戏资源时,该预设可识别数据为游戏可识别数据。当游戏的逻辑实现使用python语言时,游戏可识别数据是指python语言可以识别的数据对象,这些数据对象可能是整数,浮点数,字符串,字典,列表等python对象,并且存储在python文件中。
需要先根据数据表对应的数据格式文件的名称,将数据格式文件从磁盘读取到内存,才能根据数据格式文件将第二版本数据转换为预设可识别数据。
数据格式文件N2.py是采用python编程语法定义的文件,将N2.py读入到内存中时,直接将N2.py中的内容以python模块的形式导入到内存中,导入到内存中的内容为ATTR_DEF,ATTR_DEF以字典的形式定义了数据表格N1.csv中每一列的数据类型,字典的key为数据表格N1.csv的表头,value为每一列对应的数据类型等信息。
根据ATTR_DEF中定义的数据类型,将二维数组data_new中每一行的每一列的数据从字符串类型转化为预设可识别数据类型,预设可识别数据类型预先定义好。
步骤S105、将第二版本数据转换后的预设可识别数据,存储到文件中。
将二维数组data_new中保存的python数据对象写入到磁盘文件T.py中,采用utf8格式的编码,文件后缀名为py,游戏在运行时可以直接读取T.py中定义的数据对象,作为游戏数据使用。
本实施例中,接收数据读取命令,根据数据读取命令的参数,获取数据表的名称和数据表对应的数据格式文件的名称,当数据读取命令用于读取第二版本数据时,根据预设的合并规则将数据表中的数据与修改表中的数据进行合并,得到第二版本数据,根据数据表对应的数据格式文件将第二版本数据转换为预设可识别数据,将第二版本数据转换后的预设可识别数据存储到文件中。通过为数据表维护一个修改表,如果数据表的第二版本数据相对于第一版本数据有变化,那么只需要对该修改表进行修改即可,如果第二版本数据相对于第一版本数据没有变换,只需要修改数据表,不需要对修改表进行修改,从而减少了数据维护量,并且对两个版本的数据起到了一定的隔离和保护作用。
实施例一以数据读取命令用于读取数据表的第二版本数据为例进行说明,本实施例以数据读取命令用于读取数据表的第一版本数据为例进行说明,图4为本发明实施例二提供的数据表的处理方法的流程图,如图4所示,本实施例提供的方法包括以下步骤:
步骤S201、接收数据读取命令。
步骤S202、根据数据读取命令的参数,获取数据表的名称和数据表对应的数据格式文件的名称。
步骤S201和S202的具体实现方式参照实施例一步骤S101-S102的相关描述,这里不再赘述。
步骤S203、当数据读取命令用于读取第一版本数据时,根据数据表对应的数据格式文件将数据表中的数据转换为预设可识别数据。
示例性的,根据数据表的名称,将数据表从磁盘读取到内存,根据数据表对应的数据格式文件的名称,将数据格式文件从磁盘读取到内存,根据数据格式文件,将数据表中的数据转换为游戏可识别数据。
当数据表为用于存储游戏资源时,该预设可识别数据为游戏可识别数据。当游戏的逻辑实现使用python语言时,游戏可识别数据是指python语言可以识别的数据对象,这些数据对象可能是整数,浮点数,字符串,字典,列表等python对象,并且存储在python文件中。
以数据表为csv格式,游戏的逻辑采用python语言为例,可以选择使用Python的第三方库:csv库,将N1.csv(数据表的名称)的内容读入到内存中,以二维数组的形式存储表格数据,二维数组的第一维表示行,对应的是表格中的每一行数据,二维数组的第二维表示列,对应的是每一行的每一列单元格的内容,这样N1.csv中的每个数据都会以字符串的形式保存在内存中,最后得到的二维数组命名为data。
数据格式文件N2.py是采用python编程语法定义的文件,将N2.py读入到内存中时,直接将N2.py中的内容以python模块的形式导入到内存中,导入到内存中的内容为ATTR_DEF,ATTR_DEF以字典的形式定义了数据表格N1.csv中每一列的数据类型,字典的key为数据表格N1.csv的表头,value为每一列对应的数据类型等信息。
根据ATTR_DEF中定义的数据类型,将二维数组data中每一行的每一列的数据从字符串类型转化为预设可识别数据类型,预设可识别数据类型预先定义好。
步骤S204、将第一版本数据转换后的预设可识别数据存储到文件中。
将二维数组data中保存的python数据对象写入到磁盘文件T.py中,采用utf8格式的编码,文件后缀名为py,游戏在运行时可以直接读取T.py中定义的数据对象,作为游戏数据使用。
图5为本发明实施例三提供的数据表的处理装置的结构示意图,该装置可以集成在电子设备中,如图5所示,该装置包括:
接收模块11,用于接收数据读取命令,所述数据读取命令用于读取数据表的第一版本数据或第二版本数据,所述数据表中的数据为所述第一版本数据,所述数据表对应的修改表中存储有所述第二版本数据相对于所述第一版本数据的变化数据;
获取模块12,用于根据所述数据读取命令的参数,获取所述数据表的名称和所述数据表对应的数据格式文件的名称;
转换模块13,用于当所述数据读取命令用于读取所述第一版本数据时,根据所述数据表对应的数据格式文件将所述数据表中的数据转换为预设可识别数据;
合并模块14,用于当所述数据读取命令用于读取所述第二版本数据时,根据预设的合并规则将所述数据表中的数据与所述修改表中的数据进行合并,得到所述第二版本数据;
所述转换模块13,还用于根据所述数据表对应的数据格式文件将所述第二版本数据转换为预设可识别数据;
存储模块15,用于将所述第一版本数据或第二版本数据转换后的预设可识别数据存储到文件中。
可选的,所述数据表的名称和所述修改表的名称具有关联关系,所述数据表的第一版本数据为第一预设数据,所述数据表的第二版本数据为第二预设数据。
可选的,所述转换模块13具体用于:
根据所述数据表的名称,将所述数据表从磁盘读取到内存;
根据所述数据表对应的数据格式文件的名称,将所述数据格式文件从磁盘读取到所述内存;
根据所述数据格式文件,将所述数据表中的数据转换为预设可识别数据。
可选的,所述合并模块14具体用于:
根据所述数据表的名称和所述修改表的名称,将所述数据表和所述修改表从磁盘读取到内存;
根据所述预设的合并规则将所述数据表和所述修改表中数据进行合并,得到所述第二版本数据;
所述转换模块13具体用于:
根据所述数据表对应的数据格式文件的名称,将所述数据格式文件从磁盘读取到所述内存;
根据所述数据格式文件将所述第二版本数据转换为预设可识别数据。
可选的,所述修改表中包括以下数据中的至少一种:所述第二版本数据相对于所述第一版本数据增加的数据,所述第二版本数据相对于所述第一版本数据删除的数据,所述第二版本数据相对于所述第一版本数据修改的数据。
可选的,所述合并模块14具体用于:
逐行读取所述修改表中的数据,确定所述修改表中的各行数据的类型,所述类型为删除、增加或者修改类型;
根据所述修改表中各行数据的类型和所述修改表中的数据,对所述数据表中的数据进行修改,得到所述第二版本数据。
可选的,所述合并模块14具体用于:
当所述修改表中的第一目标行的数据的类型为增加类型时,将所述第一目标行的数据增加到所述数据表中;
当所述修改表中的第二目标行的数据的类型为删除类型时,从所述数据表中删除所述第二目标行的数据;
当所述修改表中的第三目标行的数据的类型为修改类型时,对所述数据表中与所述第三目标行的标识相同的数据行的数据进行修改。
可选的,所述合并模块14具体用于:
当所述修改表中的当前行的删除标识指示删除所述当前行时,确定所述当前行的数据的类型为删除类型,所述修改表中的每行数据具有删除标识,所述删除标识用于指示是否删除该数据;
当所述当前行的标识不包含在所述数据表中时,确定所述当前行的数据的类型为增加类型;
当所述当前行的标识包含在所述数据表中时,确定所述当前行的数据的类型为修改类型。
本实施例的装置可用于执行实施例一和实施例二所述的方法,具体实现方式和技术效果类似,这里不再赘述。
图6为本发明实施例四提供的一种电子设备的结构示意图,如图6所示,本实施例的电子设备包括:处理器21、存储器22和收发器23,所述存储器22用于存储指令,所述收发器23用于和其他设备通信,所述处理器21用于执行所述存储器22中存储的指令,以使所述电子设备执行如本发明实施例一和实施例二所述的方法。
本发明实施例五提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如本发明实施例一和实施例二所述的方法。
应理解,本发明中涉及的处理器可以是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储器(英文:read-only memory,缩写:ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetictape)、软盘(英文:floppy disk)、光盘(英文:optical disc)及其任意组合。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (18)
1.一种数据表的处理方法,其特征在于,包括:
接收数据读取命令,所述数据读取命令用于读取数据表的第一版本数据或第二版本数据,所述数据表中的数据为所述第一版本数据,所述数据表对应的修改表中存储有所述第二版本数据相对于所述第一版本数据的变化数据;
根据所述数据读取命令的参数,获取所述数据表的名称和所述数据表对应的数据格式文件的名称;
当所述数据读取命令用于读取所述第一版本数据时,根据所述数据表对应的数据格式文件将所述数据表中的数据转换为预设可识别数据;
当所述数据读取命令用于读取所述第二版本数据时,根据预设的合并规则将所述数据表中的数据与所述修改表中的数据进行合并,得到所述第二版本数据;
根据所述数据表对应的数据格式文件将所述第二版本数据转换为预设可识别数据;
将所述第一版本数据或第二版本数据转换后的预设可识别数据存储到文件中。
2.根据权利要求1所述的方法,其特征在于,所述数据表的名称和所述修改表的名称具有关联关系,所述数据表的第一版本数据为第一预设数据,所述数据表的第二版本数据为第二预设数据。
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据表对应的数据格式文件将所述数据表中的数据转换为预设可识别数据,包括:
根据所述数据表的名称,将所述数据表从磁盘读取到内存;
根据所述数据表对应的数据格式文件的名称,将所述数据格式文件从磁盘读取到所述内存;
根据所述数据格式文件,将所述数据表中的数据转换为预设可识别数据。
4.根据权利要求1所述的方法,其特征在于,所述根据预设的合并规则将所述数据表中的数据与所述修改表中的数据进行合并,得到所述第二版本数据,包括:
根据所述数据表的名称和所述修改表的名称,将所述数据表和所述修改表从磁盘读取到内存;
根据所述预设的合并规则将所述数据表和所述修改表中数据进行合并,得到所述第二版本数据;
所述根据所述数据表对应的数据格式文件将所述第二版本数据转换为预设可识别数据,包括:
根据所述数据表对应的数据格式文件的名称,将所述数据格式文件从磁盘读取到所述内存;
根据所述数据格式文件将所述第二版本数据转换为预设可识别数据。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述修改表中包括以下数据中的至少一种:所述第二版本数据相对于所述第一版本数据增加的数据,所述第二版本数据相对于所述第一版本数据删除的数据,所述第二版本数据相对于所述第一版本数据修改的数据。
6.根据权利要求5所述的方法,其特征在于,所述根据预设的合并规则将所述数据表中的数据与所述修改表中的数据进行合并,得到所述第二版本数据,包括:
逐行读取所述修改表中的数据,确定所述修改表中的各行数据的类型,所述类型为删除、增加或者修改类型;
根据所述修改表中各行数据的类型和所述修改表中的数据,对所述数据表中的数据进行修改,得到所述第二版本数据。
7.根据权利要求6所述的方法,其特征在于,所述根据所述修改表中各行数据的类型和所述修改表中的数据,对所述数据表中的数据进行修改,得到所述第二版本数据,包括:
当所述修改表中的第一目标行的数据的类型为增加类型时,将所述第一目标行的数据增加到所述数据表中;
当所述修改表中的第二目标行的数据的类型为删除类型时,从所述数据表中删除所述第二目标行的数据;
当所述修改表中的第三目标行的数据的类型为修改类型时,对所述数据表中与所述第三目标行的标识相同的数据行的数据进行修改。
8.根据权利要求6所述的方法,其特征在于,所述逐行读取所述修改表中的数据,确定所述修改表中的各行数据的类型,包括:
当所述修改表中的当前行的删除标识指示删除所述当前行时,确定所述当前行的数据的类型为删除类型,所述修改表中的每行数据具有删除标识,所述删除标识用于指示是否删除该数据;
当所述当前行的标识不包含在所述数据表中时,确定所述当前行的数据的类型为增加类型;
当所述当前行的标识包含在所述数据表中时,确定所述当前行的数据的类型为修改类型。
9.一种数据表的处理装置,其特征在于,包括:
接收模块,用于接收数据读取命令,所述数据读取命令用于读取数据表的第一版本数据或第二版本数据,所述数据表中的数据为所述第一版本数据,所述数据表对应的修改表中存储有所述第二版本数据相对于所述第一版本数据的变化数据;
获取模块,用于根据所述数据读取命令的参数,获取所述数据表的名称和所述数据表对应的数据格式文件的名称;
转换模块,用于当所述数据读取命令用于读取所述第一版本数据时,根据所述数据表对应的数据格式文件将所述数据表中的数据转换为预设可识别数据;
合并模块,用于当所述数据读取命令用于读取所述第二版本数据时,根据预设的合并规则将所述数据表中的数据与所述修改表中的数据进行合并,得到所述第二版本数据;
所述转换模块,还用于根据所述数据表对应的数据格式文件将所述第二版本数据转换为预设可识别数据;
存储模块,用于将所述第一版本数据或第二版本数据转换后的预设可识别数据存储到文件中。
10.根据权利要求9所述的装置,其特征在于,所述数据表的名称和所述修改表的名称具有关联关系,所述数据表的第一版本数据为第一预设数据,所述数据表的第二版本数据为第二预设数据。
11.根据权利要求9所述的装置,其特征在于,所述转换模块具体用于:
根据所述数据表的名称,将所述数据表从磁盘读取到内存;
根据所述数据表对应的数据格式文件的名称,将所述数据格式文件从磁盘读取到所述内存;
根据所述数据格式文件,将所述数据表中的数据转换为预设可识别数据。
12.根据权利要求9所述的装置,其特征在于,所述合并模块具体用于:
根据所述数据表的名称和所述修改表的名称,将所述数据表和所述修改表从磁盘读取到内存;
根据所述预设的合并规则将所述数据表和所述修改表中数据进行合并,得到所述第二版本数据;
所述转换模块具体用于:
根据所述数据表对应的数据格式文件的名称,将所述数据格式文件从磁盘读取到所述内存;
根据所述数据格式文件将所述第二版本数据转换为预设可识别数据。
13.根据权利要求9-12任一项所述的装置,其特征在于,所述修改表中包括以下数据中的至少一种:所述第二版本数据相对于所述第一版本数据增加的数据,所述第二版本数据相对于所述第一版本数据删除的数据,所述第二版本数据相对于所述第一版本数据修改的数据。
14.根据权利要求 13所述的装置,其特征在于,所述合并模块具体用于:
逐行读取所述修改表中的数据,确定所述修改表中的各行数据的类型,所述类型为删除、增加或者修改类型;
根据所述修改表中各行数据的类型和所述修改表中的数据,对所述数据表中的数据进行修改,得到所述第二版本数据。
15.根据权利要求14所述的装置,其特征在于,所述合并模块具体用于:
当所述修改表中的第一目标行的数据的类型为增加类型时,将所述第一目标行的数据增加到所述数据表中;
当所述修改表中的第二目标行的数据的类型为删除类型时,从所述数据表中删除所述第二目标行的数据;
当所述修改表中的第三目标行的数据的类型为修改类型时,对所述数据表中与所述第三目标行的标识相同的数据行的数据进行修改。
16.根据权利要求14所述的装置,其特征在于,所述合并模块具体用于:
当所述修改表中的当前行的删除标识指示删除所述当前行时,确定所述当前行的数据的类型为删除类型,所述修改表中的每行数据具有删除标识,所述删除标识用于指示是否删除该数据;
当所述当前行的标识不包含在所述数据表中时,确定所述当前行的数据的类型为增加类型;
当所述当前行的标识包含在所述数据表中时,确定所述当前行的数据的类型为修改类型。
17.一种电子设备,其特征在于,包括:处理器、存储器和收发器,所述存储器用于存储指令,所述收发器用于和其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述电子设备执行如权利要求1-8任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811550200.9A CN109582726B (zh) | 2018-12-18 | 2018-12-18 | 数据表的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811550200.9A CN109582726B (zh) | 2018-12-18 | 2018-12-18 | 数据表的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582726A CN109582726A (zh) | 2019-04-05 |
CN109582726B true CN109582726B (zh) | 2021-09-07 |
Family
ID=65930926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811550200.9A Active CN109582726B (zh) | 2018-12-18 | 2018-12-18 | 数据表的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582726B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110866381B (zh) * | 2019-09-29 | 2021-03-30 | 京东数字科技控股有限公司 | 表单的校验方法、装置、存储介质和设备 |
CN112668287B (zh) * | 2019-09-30 | 2024-07-26 | 北京国双科技有限公司 | 数据表确定方法、系统及装置 |
CN113110868B (zh) * | 2021-04-07 | 2023-08-08 | 网易(杭州)网络有限公司 | 文件合并方法、装置、计算机设备及存储介质 |
CN113448617B (zh) * | 2021-08-31 | 2022-01-25 | 太平金融科技服务(上海)有限公司深圳分公司 | 数据对象管理方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102957748A (zh) * | 2012-11-07 | 2013-03-06 | 广东威创视讯科技股份有限公司 | 三维场景动态更新方法和系统 |
CN103678519A (zh) * | 2013-11-29 | 2014-03-26 | 中国科学院计算技术研究所 | 一种支持Hive DML增强的混合存储系统及其方法 |
CN107895018A (zh) * | 2017-11-15 | 2018-04-10 | 广州视睿电子科技有限公司 | 数据库修改sql生成方法、系统、存储介质及计算机设备 |
CN107977396A (zh) * | 2014-11-12 | 2018-05-01 | 华为技术有限公司 | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 |
CN108415714A (zh) * | 2018-02-08 | 2018-08-17 | 上海商米科技有限公司 | 移动终端的系统升级方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060173934A1 (en) * | 2005-02-02 | 2006-08-03 | Gateway | Saving documents on multiple drives |
CN103780619B (zh) * | 2014-01-08 | 2018-02-09 | 深圳市掌玩网络技术有限公司 | 广域网实时互动游戏同步方法、装置及系统 |
CN105897811B (zh) * | 2015-01-26 | 2019-04-23 | 中国移动通信集团公司 | 一种数据同步方法和装置 |
US10417640B2 (en) * | 2015-02-23 | 2019-09-17 | Visa International Service Association | Systems and methods to provide data communication channels for user inputs to a centralized system |
CN106880944B (zh) * | 2015-12-15 | 2020-05-29 | 博雅网络游戏开发(深圳)有限公司 | 游戏数据分析方法和装置 |
CN106375493B (zh) * | 2016-10-10 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 一种跨网络通信的方法以及代理服务器 |
CN108170489A (zh) * | 2016-12-07 | 2018-06-15 | 腾讯科技(深圳)有限公司 | 一种快速加载资源的方法及装置 |
CN106582013B (zh) * | 2016-12-09 | 2019-12-10 | 网易(杭州)网络有限公司 | 游戏服务系统、用于向在线的游戏更新数据的方法和装置 |
CN107679054B (zh) * | 2017-06-12 | 2019-11-05 | 平安科技(深圳)有限公司 | 数据比对方法、装置及可读存储介质 |
CN108156247B (zh) * | 2017-12-27 | 2021-05-28 | 北京金山安全软件有限公司 | 一种数据通信方法、装置、系统、终端和可读存储介质 |
-
2018
- 2018-12-18 CN CN201811550200.9A patent/CN109582726B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102957748A (zh) * | 2012-11-07 | 2013-03-06 | 广东威创视讯科技股份有限公司 | 三维场景动态更新方法和系统 |
CN103678519A (zh) * | 2013-11-29 | 2014-03-26 | 中国科学院计算技术研究所 | 一种支持Hive DML增强的混合存储系统及其方法 |
CN107977396A (zh) * | 2014-11-12 | 2018-05-01 | 华为技术有限公司 | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 |
CN107895018A (zh) * | 2017-11-15 | 2018-04-10 | 广州视睿电子科技有限公司 | 数据库修改sql生成方法、系统、存储介质及计算机设备 |
CN108415714A (zh) * | 2018-02-08 | 2018-08-17 | 上海商米科技有限公司 | 移动终端的系统升级方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109582726A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582726B (zh) | 数据表的处理方法和装置 | |
CN110673924B (zh) | 一种多架构容器云镜像选择方法、装置、设备及存储介质 | |
CN108334609B (zh) | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 | |
CN106843842B (zh) | 一种应用程序配置文件的更新方法及装置 | |
CN106648569B (zh) | 目标序列化实现方法和装置 | |
CN111680061A (zh) | 一种数据存取方法、装置、设备和存储介质 | |
CN113312338A (zh) | 数据一致性的校验方法、装置、设备、介质及程序产品 | |
CN109672608B (zh) | 根据时间发送消息的方法 | |
CN113360043B (zh) | 业务处理方法及设备 | |
CN112380401B (zh) | 业务数据的核对方法和装置 | |
CN106445815A (zh) | 一种自动化测试方法及装置 | |
CN111259003B (zh) | 一种数据库建立方法及装置 | |
CN112015806A (zh) | 区块链存储数据的方法及装置 | |
CN111125008B (zh) | 一种异常inode的动态修复方法、系统及相关组件 | |
CN110704573B (zh) | 目录存储方法、装置、计算机设备及存储介质 | |
CN109271564A (zh) | 保单查询方法及设备 | |
CN111124883B (zh) | 一种基于树形表格的测试用例库引入方法、系统及设备 | |
CN111125743B (zh) | 权限管理方法、系统、计算机设备及计算机可读存储介质 | |
CN111241096A (zh) | 一种excel文档的文本提取方法、系统、终端及存储介质 | |
CN110888643A (zh) | 页面处理方法及装置 | |
CN113297311B (zh) | 一种数据转换方法及装置 | |
KR101737575B1 (ko) | 자동 생성된 sql 구문 기반의 데이터 검증 방법 및 장치 | |
CN117149755A (zh) | 一种数据质量的检测方法、系统、设备及存储介质 | |
CN113408250B (zh) | 一种项目文件的处理方法和装置 | |
CN116166617B (zh) | 开放版式文档ofd合并后的目录生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |