获取有关字符串索引的错误必须是整数

时间:2016-10-28 18:08:51

标签: python pymongo export-to-csv

我收到错误消息: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
    }

1 个答案:

答案 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)