2017-01-31 6 views
0
def query_db(query, args=(), one=False): 
cur = connection.cursor() 
cur.execute(query, args) 
r = [dict((cur.description[i][0], value) 
      for i, value in enumerate(row)) for row in cur.fetchall()] 
cur.connection.close() 
return (r[0] if r else None) if one else r 
my_query = query_db("select top 1 email as email_address,status = 'subscribed',firstname,lasstname from users") 
json_output = json.dumps(my_query) 
print json_output 

結果がこれです私はデータベースにmerge-fieldsというカラムを持っていませんが、Mailchimpに投稿するには、その名前と姓を持つすべてのemail-idのmerge-fieldsヘッダが必要です。私はカーソルに何をしなければならないのですか?どんな助けもありがとう。ありがとう!ここでする方法再構成は、pythonでカーソルを使用して、SQLクエリの結果セットがあるJSONデータの下

+0

にそれを渡す私は、他の言葉で値を受け入れる別の関数を追加しましたものですSQL 2016を実行している場合は、 'FOR JSON'を使用してそこでフォーマットを行うことができます。残念ながら、私はPythonの側面を支援する専門知識を持っていません。興味があればリソースhttps://msdn.microsoft.com/en-us/library/dn921882.aspx – Xedni

+0

リンクをありがとう!残念ながら私はSQL Server 2012を使用しています –

+0

これはほとんど直接的な置き換えではありませんが、あなたはこれについてどうやって行くのか考えています。この質問に対する回答は、あなたがやろうとしていることに似た特徴があるようでした。 http://stackoverflow.com/questions/23255512/creating-nested-json-structure-with-multiple-key-values-in-python-from-json – Xedni

答えて

0
I'm adding this so that future users of mailchimp API version3 can get an idea of how I achieved this. 

は、「私はmyqueryという起因しているすべての値をキャプチャした場合、この関数以下

def get_users_mc_format(query): 
users = query_db(query) 
new_list = [] 
for user in users: 
    new_list.append({ 
     "email_address": user["email"], 
     "status": user["status"], 
     "merge_fields": { 
      "FNAME": user["firstname"], 
      "LNAME": user["lastname"], 
     }, 
     "interests": { 
      "1b0896641e": bool(user["hardware"]), 
     } 
    }) 
return new_list 
関連する問題