2017-10-29 6 views
-2

申し訳ありません。私は英語に堪能ではないので、詳細を説明することはできません。PythonでJSON値を取得したい

私はこのようなJSON形式のドキュメントがあります。

[ 
    { 
     "id":"96103252", 
     "pvname":"Bet365", 
    } 
] 

私のPythonのコードは次のようになります。

url_odds= cfg.oddsurl 
oddsfeed = urllib2.urlopen(url_odds) 
oddsjson = json.load(oddsfeed) 
getjson = "{""data"":" + oddsjson + "}" 

for sport in getjson["data"]: 
    pv_id= validate(sport,"id") 
    pv_name= validate(sport,"pv_name") 
    sql= "INSERT INTO odds_sports(pv_id,pv_name) VALUES ('" 
    sql= sql+ pv_id + "','" 
    sql= sql+ pv_name + "')" 
cursor.execute(sql) 
conn.commit() 

それはgetjson = "{"


このエラーを送信します"data" ":" + oddsjson + "}"

TypeError: 'str'オブジェクトと 'list'オブジェクトを連結できません

+0

これを行うには、まずリストを文字列として 'シリアライズ'する必要があります。これらは助けになりますか? https://stackoverflow.com/questions/2147701/serializing-list-to-jsonシリアル化したら、コードの4行目で連結することができます。 –

+0

これは同じことを言います - 'dump'を使うhttps://stackoverflow.com/questions/26033239/list-of-objects-to-json-with-python –

答えて

0

非常に単純な構文エラーです。この行に:、また

for sport in oddsjson: 
    pv_id = validate(sport.get("id")) 
    pv_name = validate(sport.get("pvname")) 

と上:

getjson = "{""data"":" + oddsjson + "}" 

oddsjsonはあなたがおそらくそれの各要素を反復処理するので、正しい値を解析する、辞書の配列です別の問題。移動中に生成する文字列を使用してSQLクエリを手書きで書くことは、troublesの招待状です(特に、クエリが他人によって生成された動的文字列を含む場合)。 sqlalchemyのようなライブラリをデータベースのミドルウェアとして使用することをお勧めします。

関連する問題