2017-09-20 24 views
0

基本的に今日の私の計画は、jsonから複数のプロファイルを作成し、それらをスレッドとして実行することでした。問題はスレッド化をしたことがないことですが、これについて読んだことはありません。複雑ではありませんが、最初の試みとして、またこれに対するアドバイスは、このようなことを可能にするためには本当に便利です。私はこの時点でJSONによって検証正しいことを願っていPython - スレッドを含む複数のjsonプロファイル?

[{ 
    "Name": "Baller", 
    "Lastname": "cavs", 
    "Email": "[email protected]" 
}, 
{ 
    "Name": "Lakers", 
    "Lastname": "Nation", 
    "Email": "[email protected]" 
} 

]

しかし私が考えていたことは、このように見ているJSONファイルを持つことです。 JSONファイルを持つので、基本的

は、すべてのプロファイルがあり、私のスクリプトにロジックを作るスレッドに実行しますが、この時点で私はちょうど私が追加した場合、一度だけを許可する

{ 
     "Name": "Baller", 
     "Lastname": "cavs", 
     "Email": "[email protected]" 
    } 

を持つべきで作られたということです[]複数のタスクを作成するには、[]が何をしているのかわからないのでエラーが出るでしょう... しかし、それを複数のjsonタスクで実行させ、スレッド(私はスレッドが行くのが最善だと思いますか?)。私がしたいことは、各プロファイルをスレッドにすることです。私のスクリプト/コードで同じ論理コードを実行し、その後、はい。

お気軽にコメントしてください。さらに私がこれ以上の時にこれを編集します!


EDIT:

{ 
    "Profiles": { 
     "profile1": { 
      "Name": "Baller", 
      "Lastname": "cavs", 
      "Email": "[email protected]" 
     }, 
     "profile2": { 
      "Name": "Lakers", 
      "Lastname": "Nation", 
      "Email": "[email protected]" 
     } 
    } 
} 

私はそれに私のJSONファイルを変更しているとどのようなコード私がやろうとしてきたが、次のとおりです。

with open('profile.json', 'r', encoding='UTF-8') as json_data: 
    config = json.load(json_data) 

Name = config["Name"] 
print(Name) 

が、私はというエラーを取得していますKeyError: 'Name'

私はそれがまったく見つからないと思っていますか?..ここに私は..私は何をする必要があると思いますmプロファイルを通るループ?しかし、その後私はループを行う場合、それはちょうど1で1を実行すると同時にすべてのプロファイルを実行するような考えですか?

+0

は、あなたはおそらくすでに試したいくつかのコードを提供することができますようにあなたのJSONに見えると仮定し

? –

+0

はい。私は今私が行った結果を編集する – WeInThis

+0

@ YaroslavSurzhikovあなたが行く – WeInThis

答えて

1

名前が辞書にないため、KeyErrorが返されます。例えば、config['Profiles']['profile1']['Name']でプロファイルを取得してみてください。また、リスト内の要素を繰り返し処理すると、リストの最初のソリューションも機能するはずです。あなたのコードは次のようになり

[ {profile1}, {profile2}, etc ] 

:編集したJSONの例で

with open('profile.json', 'r', encoding='UTF-8') as json_data: 
    config = json.load(json_data) 

for profile in config: 
    Name = profile["Name"] 
    print(Name) 

with open('profile.json', 'r', encoding='UTF-8') as json_data: 
    config = json.load(json_data) 

for profile_cfg in config['Profiles'].values(): 
    Name = profile_cfg["Name"] 
    print(Name) 
+0

ああ、オハイオ州。だから質問があります。お互いにそれぞれのプロフィールのように走りますか?最初にプロファイル1、次にプロファイル2のように?その場合。私はそれらを同時に実行したい場合。私はスレッドを使用する必要があると仮定? @ Yaroslav – WeInThis

+0

しかし、もしそれを読んで正しい。つまり、コードがあれば、300行などと言います。私はそれをループとして機能させるために、すべてを窪んだブロックにする必要がありますか? @ YaroslavSurzhikov – WeInThis

+0

いいえ、あなたはコードをクラスや関数、さらにはモジュールにラップして、そのループからスレッド/多重化を使ってコードを実行することができます。最初の質問について - 辞書のリストを使うと、それができます。しかし、辞書の辞書を使用している場合 - その(辞書はPythonで順序付けされていません) –

関連する問題