私はデータベースからデータを取り出すためにvertica_pythonを使用しています。私はその後、分割し、それぞれのインデックスはセルであること、次の形式でExcelにこのおとり捜査を解析し、それをロードPythonを使用してデータを適切な列に整理する
[{"id":0,"prediction_type":"CONV_PROBABILITY","calibration_factor":0.906556,"inte cept":-2.410414,"advMatchTypeId":-0.239877,"atsId":-0.135568,"deviceTypeId":0.439130,"dmaCode":-0.251728,"keywordId":0.442240}]
:
prediction_type CONV_PROBABILIT calibration_factor 0.90655 intercept -2.41041 advMatchTypeId -0.23987 atsId 1.44701 deviceTypeId 0.19701 dmaCode -0.69982 keywordId 0.44224
私が引く列には、次の形式の文字列として来ます
ここに私の問題があります。文字列には明確なフォーマットがありません。つまり、文字列の一部の機能が不足していることがあります。
:intercept -2.41041 advMatchTypeId -0.23987 deviceTypeId 0.37839 dmaCode -0.53552 keywordId 0.44224
intercept -2.41041 advMatchTypeId -0.23987 atsId 0.80708 deviceTypeId -0.19573 dmaCode -0.69982 keywordId 0.44224
これは私が使用しているコードは次のとおりです。私は、代わりにこのように見て出てくる、私が望むように書式設定を保持し、上記の例を持つことができますどのように
intercept -2.41041 advMatchTypeId -0.23987 deviceTypeId 0.37839 dmaCode -0.53552 keywordId 0.44224
intercept -2.41041 advMatchTypeId -0.23987 atsId 0.80708 deviceTypeId -0.19573 dmaCode -0.69982 keywordId 0.44224
:ここでは例です
data_all = cur.fetchall()
for i in range(len(data_all)):
col = 0
data_one = ''.join(data_all[i])
raw_coef = data_one.split(',')[1:len(data_all)]
for j in range(len(raw_coef)):
raw = ''.join(raw_coef[j])
raw = re.sub('"|}|{|[|]|', '', raw)[:-1]
raw = raw.split(":")
for k in range(len(raw)):
worksheet.write(i, col, raw[k], align_left)
feature.append(raw[0]) # for unique values
col+=1
マイクエリ:
cur.execute(
"""
select MODEL_COEF
from
dcf_funnel.ADV_BIDDER_PRICING_LOG
where MODEL_ID = 8960
and DATE(AMP_QUERY_TIMESTAMP) = '11-02-2016'
"""
)
はあなたが現在のデータアップを分割し、Excelに書き込むために、それを整理するために使用するコードを追加してください。 – roganjosh
それは良い、ありがとう。あなたは文字列を戻していない、あなたは辞書を含むリストを取得しています。あなたは文字列に変換しているように見えるし、正規表現を使用してすべてのバックアップを再び分割しようとしています。私は 'cursor'プロパティで何かをチェックする必要がありますし、何かを一緒に入れようとします。 – roganjosh
あなたのコメントを正しく理解すれば、この列は単一の列から来ます。 – opamp