我的记录OrderedDict,如下所示:
my_record = OrderedDict([ (u'FIR_ID', '111249'), (u'FIR_TYPE', 'ORG')])
我需要把它加载到数据库中,所以我想把数据集转换成一个数据帧,然后,转换成一个CSV文件,以便于数据库加载。但是,当我做type(my_record)时,我得到:
这意味着它是一个类对象。如果是collections.OrderedDict类型,我可以做一个DataFrame(my_record)。我使用的是python2.x。我能把这个OrderedDict转换成DataFrame?在
编辑
多亏了nosklo的代码,错误消失了;列标题在那里,但是值丢失了。我提取了10条记录如下:
^{pr2}$
然后csv.DictWriter()生成包含以下内容的csv:,,,...,,,,,,,,,,,,,,,,
看起来像是钥匙的完整列表。文件末尾有许多行“,,,,”表示缺少值。在
更新
我现在的代码是: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
给了我[,
,
,
,...
鉴于,r.数据来自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'与{}
这起作用了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()
有什么想法?在