获取有关字符串索引的错误必须是整数
getting error about string indices must be integers
我收到错误消息:回溯(最近一次调用最后一次):
文件“”,第 10 行,位于
类型错误:字符串索引必须是整数。请帮助我。
python2.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
}
不要遍历 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)
我收到错误消息:回溯(最近一次调用最后一次): 文件“”,第 10 行,位于 类型错误:字符串索引必须是整数。请帮助我。
python2.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
}
不要遍历 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)