2017-09-12 10 views
0

私は奇妙なフォーマットの2つのデータファイルを持っています。将来の目的でそれを使用するために、それをいくつかの降下形式に解析する必要があります。解析した後、私は2つのフォーマットを持つことになり、そのうちの1つはidを持ち、そのidに関するそれぞれの情報は別のファイルからのものになります。フラットファイルにデータを保存

例:ファイル1から は、私は両方のファイルから複数の列を持っているファイルこのような2 PropertyId、プロパティ1、Property2

から

名、ポジション、PropertyID

を取得します。

フラットファイルにこれらの情報をデータベースとしてサーバーに格納する方法は何ですか?私は何らかの理由でデータベース(Mysql、MsSql)を使用したくありません。

最初は、単一の昏睡区切りファイルを使用すると考えました。しかし、私はこれらの情報を更新するときに問題を引き起こす多くの列を使用して病気になります。

私は、誰もがこの

おかげ

+0

良い方法ですか?データベースを使用します。 "私はデータベースを使用したくない"という理由はありません。 – Kayaman

+0

sqliteデータベースを使用する - サーバーを必要とせず、1つのフラットファイルに格納され、Pythonはすべてのドライバを持ち、フラットファイルよりもはるかに優れています。なぜ簡単なものを使うことができたら、なぜホイールを再発明していますか? – mikeb

+0

json形式を使用 – nafas

答えて

0

を処理するためのより良い方法を提案できるJavaとPython を使用して他のアプリケーションで解析されたデータを使用しているでしょうあなたがそう触れないようにIDを使用してデータを正規化することを確認してください多くの異なるデータ列が1つの変更でも使用できます。上記のfile2のように、propertyIdとプロパティの列だけを持つことで、列を2つに減らすことができます。 1つの行に2つのpropertyIdが関連付けられているのではなく、1つのpropertyIdが上記の例の1つのプロパティーに関連付けられています。 2つのメインデータテーブルを関連付けるには別のファイルが必要です。このようにデータを正規化すると、変更が発生したときに更新を最小限に抑えることができます。

ファイル1:

owner_id |名前|ポジション|
1 |ジャック・マ| CEO |

ファイル2:

property_id |プロパティ|

101 |ハリウッドマンション|

102 |ニューヨークホテル|

ファイル3:

OwnerId | PropertyId |

1 | 101

1 | 102

2

JSONを使用します。 JSONは、PythonまたはJavaのオブジェクト間で簡単に変換できます。 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。

+0

これは良いアイデアだと思われますが、これは単一のjsonファイルに格納することができます.iはfile1とfile2の両方を意味します。 – vikas

+0

もちろんです。単一のコンテナにそれらをラップし、「不動産」と名付けることができます。次に、各サブセットに「エージェント」と「プロパティ」という名前を付けます。 –