2016-11-15 8 views
0

How to Import Data in .bson Fileこの記事で説明したように、私は何とかStataにロードしたい.bsonファイルを持っています。bsonをjsonに変換してください(次にstataのcsvまたはjsonにロードしてください)

ベストケースのシナリオは.csvファイルを作成することですが、それを.jsonファイルに変換することも効果的です。それから私はStataにinsheetjsonを使うことができると思います。

私はPythonに精通しており、この投稿を見つけました。MongoDB: BSON to JSON私はこの作業を取得するにはどうすればよい

result = db.mycol.find({ ....}) 
json = simplejson.dumps(result) 

:答えは1つがsimplejsonパッケージとJSONにBSONを変換するには、このコードを使用することができることを言いましたか?私は正確にどのようにbsonファイルをPythonに読み込むのかわかりません(これはdbオブジェクトが何であるかと思います)。私はまた、かっこで何をすべきかわからない({ ....})。助言がありますか?ここでも.bsonデータを.csvまたは.jsonに変換するもう1つの簡単な方法も歓迎されます。

with open("filepath/games.bson", "r") as myfile: 
    data = myfile.read() 

#note that we need to change to unicode because of errors with some characters 
data2 = unicode(data, errors='ignore') 

with open('filepath/games.json', 'w') as data_file: 
    json.dump(data2, data_file) 

をしかしdatadata2の両方で、私は次のようになり、結果取得:

***更新

助言にコメントを取って、私は次のことを行っている

\x00\x02fg_pct\x00\x05\x00\x00\x00.273\x00\x10fga\x00\x0b\x00\x00\x00\x10ft\x00\x01\x00\x00\x00\x02ft_pct\x00\x05\x00\x00\x00.500\x00\x10fta\x00\x02\x00\x00\x00\x02mp\x00\x06\x00\x00\x0021:00\x00\x10orb\x00\x01\x00\x00\x00\x10pf\x00\x02\x00\x00\x00\x02player\x00\x0b\x00\x00\x00Juan Dixon\x00\x10plus_minus\x00\xee\xff\xff\xff\x10pts\x00\x08\x00\x00\x00\x10stl\x00\x01\x00\x00\x00\x10tov\x00\x01\x00\x00\x00\x10trb\x00\x02\x00\x00\x00\x00\x037\x00\xf7\x00\x00\x00\x10ast\x00\x02\x00\x00\x00\x10blk\x00\x00\x00\x00\x00\x10drb\x00\x02\x00\x00\x00\x10fg\x00\x00\x00\x00\x00\x10fg3\x00\x00\x00\x00\x00\x02fg3_pct\x00\x05\x00\x00\x00.000\x00\x10fg3a\x00\x03\x00\x00\x00\x02fg_pct\x00\x05\x00\x00\x00.000\x00\x10fga\x00\x05\x00\x00\x00\x10ft\x00\x02\x00\x00\x00\x02ft_pct\x00\x05\x00\x00\x00.500\x00\x10fta\x00\x04\x00\x00\x00\x02mp\x00\x06\x00\x00\x0020:00\x00\x10orb\x00\x00\x00\x00\x00\x10pf\x00\x02\x00\x00\x00\x02player 

これは私が欲しいものではないようです。もしそうなら、私はStataや他のプログラムでそれを開く方法がわかりません。

+0

を、私は 'result'は、純粋なPythonの辞書/リストになることをかなり確信しています。その場合、JSONを有効な文字列にするには 'json.dumps(result)'を実行し、JSONをファイルに保存するには 'json.dump(result)'をPythonの標準の 'json' libを使うだけです。私は何かを誤解しましたか? – lucasnadalutti

+0

私はこれをやろうとしており、質問を結果に更新しました。 – bill999

+0

myfileとしてopen( "filepath/games.bson"、 "r")をopen( "filepath/games.bson"、 "rb")でmyfileとして置き換えてみてください: ' – lucasnadalutti

答えて

0

はこの試してみてください:あなたの例では

import bson 
with open('filepath/games.bson','rb') as f: 
    data = bson.decode_all(f.read()) 
+1

理由はわかりませんが、「AttributeError: 'module'オブジェクトに属性 'decode_all'がありません」 – bill999

+0

使用しているPythonのバージョンはどれですか?あなたはbsonモジュールのインポートを忘れていませんでしたか? –

+0

バージョン2.7.10。私はbsonモジュールをインポートしました。 – bill999

関連する問題