我收到错误消息:Traceback(最近一次调用最后一次): 文件"",第10行,in TypeError:字符串索引必须是整数。请帮帮我。
python 2.7脚本示例:
import csv
cursor = db.job_templates.find( {}, {'_id': 1, 'rangePercents.questionnaire': 1, 'rangePercents.termMap': 1})
with open('range_percent1.csv', 'wt') as outfile:
fields = ['_id', 'questionnaire', 'termMap']
write = csv.DictWriter(outfile, fieldnames=fields)
write.writeheader()
for x in cursor:
x_id = x['_id']
for y in x['rangePercents']:
z = {
'_id': x_id,
'rangePercents.questionnaire': y['questionnaire'],
'rangePercents.termMap': y['termMap']}
write.writerow(z)
数据样本
"_id": ObjectID("51dc52fec0d988a9547b5201"),
"rangePercents": {
"termMap": 0,
"questionnaire": 100
}
答案 0 :(得分:1)
不要遍历x['rangePercents']
,您已经可以通过x
访问其中的所有内容。如果您像往常一样进行迭代,那么您只需将字典中的每个键都设为y
,这是一个字符串,这就是您收到错误的原因。试试这个:
for x in cursor:
x_id = x['_id']
y = x['rangePercents']
z = {
'_id': x_id,
'rangePercents.questionnaire': y['questionnaire'],
'rangePercents.termMap': y['termMap']}
write.writerow(z)