私のレコード、OrderedDict
は次のようになります。
my_record = OrderedDict([ (u'FIR_ID', '111249'), (u'FIR_TYPE', 'ORG')])
これをデータベースにロードする必要があるため、データセットをデータフレームに変換してから CSV ファイルに変換して、データベースのロードを容易にしたいと考えています。しかし、私が行うtype(my_record)
と、次のようになります。
<class 'pg.mod.results'>
つまり、クラス オブジェクトです。タイプが の場合collections.OrderedDict
は、DataFrame(my_record)
. Python 2.x を使用しています。OrderedDict
これを何に変換できDataFrame
ますか?
編集
nosklo のコードのおかげで、エラーはなくなりました。列ヘッダーはありますが、値がありません。次のような 10 件のレコードを抽出しました。
[<ravenpackapi.models.results.Result at 0x118caadd0>,
<ravenpackapi.models.results.Result at 0x118caad90>,
<ravenpackapi.models.results.Result at 0x118e1a950>,
..., <ravenpackapi.models.results.Result at 0x118da8750>]
次に、csv.DictWriter() は、次の内容の csv を生成します。
<Field: TIMESTAMP_UTC>,<Field: RP_STORY_ID>,<Field: RP_ENTITY_ID>,...,<Field: ENTITY_TYPE>,,,,,,,,,,,,,,,
これは、キーの完全なリストのように見えます。また、ファイルの末尾には、値が欠落していることを示す「,,,,」の行が多数あります。
アップデート
私の現在のコードはこれです:
records = list(records)
with open('/Users/.../.../RP_test_5.txt', 'w') as f:
cf = csv.DictWriter(f,
ravenpackapi.models.fields.ANALYTICS_FIELDS,
extrasaction='ignore')
cf.writeheader()
cf.writerows(r.data for r in records)
値が欠落しているため、試しました:
for r in records: r.data
これにより、必要な辞書が正常に取得されました。理由がわかりません.csvに値を書き込めません。それはありますか
ravenpackapi.models.fields.ANALYTICS_FIELDS
私にくれます
[<Field: TIMESTAMP_UTC>,
<Field: RP_STORY_ID>,
<Field: RP_ENTITY_ID>,
<Field: ENTITY_TYPE>,...
一方、r.data from
for r in records: r.data
私にくれます
{u'RP_ENTITY_ID': u'91C82E',
u'RP_POSITION_ID': None,
u'RP_SOURCE_ID': u'C98333',
u'RP_STORY_EVENT_COUNT': 17,
u'RP_STORY_EVENT_INDEX': 5,
u'RP_STORY_ID': u'54F16F66850FB15F838629FD0C41F1CD',
u'SOURCE_NAME': u'Ticker Report',
u'SUB_TYPE': None,
u'TIMESTAMP_UTC': u'2018-06-30 00:03:10.457',...,}
順序が異なるか、および/またはキーの形式が異なりますか?
u'TIMESTAMP_UTC'
対<Field: TIMESTAMP_UTC>
これはうまくいきました
records = list(records)
for r in records: r.data
with open('/Users/.../RP_test_6.txt', 'w') as f:
cf = csv.DictWriter(f,
r.data.keys(),
extrasaction='ignore')
cf.writeheader()
cf.writerows(r.data for r in records)
私はより良い方法があると確信しています
for r in records: r.data
と
r.data.keys()
アイデア?