2017-06-24 12 views
-1

私はCSVファイルへのMongoDBエクスポートから取得した文字列を持っている:ここでは例です:この文字列をPythonのdictに変換するにはどうすればよいですか?

[{"group":"Most Common","id":"00000000000002","name":"HVAC Specialists","name_singular":"HVAC Specialist"},{"group":"Other","id":"00000000001","name":"Hauling \u0026 Junk Removers","name_singular":"Hauling \u0026 Junk Remover"}] 

私は私が必要なものを引き出し、それをエクスポートすることができますので、辞書に日付を入れしようとしています。

私はリストに入れようとしましたが、各文字から要素を作成しました。

文字列は、txtファイル内にあり、私はこのようにそれを呼んでいる:

python stringwork.py thestring.txt 

私はthis questionを見て、この試みた:

from sys import argv 
import json 

# filename = argv 

txt = open(argv[1]) 

json.loads(str(txt)) 

をそして私は、次のエラーを得ました。

+0

私は少し混乱しています。あなたがあなたの質問にあなたが提供したテキスト行を 'argv [1]'から読み込んでいますか? – idjaw

+0

あなたの文字列をコピーして 'json.loads'呼び出しを使用しましたが、うまくいきました。あなたのスクリプトへのあなたの正確な入力が何であるか分かりませんが、あなたが提供したものに基づいて、私は本当に複製できません。 – idjaw

+0

この文字列で試してみましたが問題ありません。入力した 'argv'が間違っているのでしょうか? – GAVD

答えて

1

txt変数はファイルオブジェクトであり、文字列に変換することはできません。したがって、txt = open(argv[1]).readlines()のようなファイルオブジェクトの内容を読み取る必要があります。次に、でtxtリストの文字列を取得することができます。

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

from sys import argv 
import json 

filename = argv 

txt = open(argv[1]).readlines() 

a = json.loads(str(txt[0])) 
print(a) 
1

あなたはここで少し混乱している:この後

txt = open(argv[1]) 
json.loads(str(txt)) 

txtはファイルオブジェクトではなく、実際の文字列です。あなたはこのような何かする必要がありますそのために

:ここ

txt = open(argv[1]).read() 
json.loads(txt) 

txtは、既にファイルの内容を文字列であるので、strは必要ありません。

documentationのファイルの読み取り/書き込みを確認してください。

関連する問題