将数据存储在平面文件中

时间:2017-09-12 15:44:56

标签: java python flat-file

我有两个数据文件,这是一些奇怪的格式。需要将其解析为某种下降格式,以便将其用于将来的目的。在解析之后,我最终得到两种格式,其中一种具有id,并且与该id相关的相应信息将来自另一个文件。

Ex: 从文件1我得到

名称,职位,PropertyID

来自文件2 PropertyId,Property1,Property2

像这样,我从文件中获得了更多列。

将这些信息作为数据库存储在服务器平面文件中的空闲方式是什么?我出于某种原因不想使用数据库(Mysql,MsSql)。

最初我想过使用单个Coma分隔文件。但最终使用了很多列会导致更新这些信息时出现问题。

我将使用java和python在其他应用程序中使用解析数据 任何人都可以建议更好的方法来处理这个

由于

2 个答案:

答案 0 :(得分:2)

我会使用JSON。可以使用Python或Java轻松地将JSON转换为对象。在Python中,JSON直接映射到dict。 Java有各种转换工具。工作远比做你自己的工作少得多。对于Java,请参阅JAXB。

像这样。

文件1:将人物映射到propertyID

{
   {"firstName": "John", "lastName": "Smith", "position": "sales"} : 123},
   {"firstName": "Jane", "lastName": "Doe", "position": "manager"} : 456} 
}

文件2:将propertyId映射到属性列表。

{
    {123: [{"address": "123 street", "city": "LA"}, {"address": "456 street", "city": "SF"}] } ,
    {456: [{"address": "123 ave", "city": "XX"}, {"address": "456 ave", "city": "SF"}] } 
}

P.S。将一个人与一个属性ID列表相关联并让每个属性拥有它自己的ID可能更有意义。更容易移动东西并重新分配。只需我0.02美元。

答案 1 :(得分:0)

确保使用ID规范化数据,以避免触及如此多的不同数据列,甚至只需进行一次更改。与上面提到的file2一样,只需要propertyId和property列就可以将列减少到两个。不是在一行中将1个propertyId与2个属性相关联,而是根据上面的示例将1个propertyId与1个属性相关联。您需要另一个文件来关联两个主数据表。像这样规范化数据可以在发生更改时将对它们的更新降到最低。

文件1:

owner_id |名字|位置|
1 |杰克马| CEO |

file2的:

property_id |财产|

101 |好莱坞大厦|

102 |迈阿密海滨别墅|

file3的:

OwnerId | PropertyId |

1 | 101

1 | 102