当前位置: 首页 > 面试题库 >

为什么会看到“ TypeError:字符串索引必须为整数”?

傅阳
2023-03-14
问题内容

我正在学习python并试图将github问题转换为可读形式。使用有关如何将JSON转换为CSV的建议?我想出了这个:

import json
import csv

f=open('issues.json')
data = json.load(f)
f.close()

f=open("issues.csv","wb+")
csv_file=csv.writer(f)

csv_file.writerow(["gravatar_id","position","number","votes","created_at","comments","body","title","updated_at","html_url","user","labels","state"])

for item in data:
        csv_file.writerow([item["gravatar_id"], item["position"], item["number"], item["votes"], item["created_at"], item["comments"], item["body"], item["title"], item["updated_at"], item["html_url"], item["user"], item["labels"], item["state"]])

其中“ issues.json”是包含我的github问题的json文件。当我尝试运行它时,我得到

File "foo.py", line 14, in <module>
csv_file.writerow([item["gravatar_id"], item["position"], item["number"], item["votes"], item["created_at"], item["comments"], item["body"], item["title"], item["updated_at"], item["html_url"], item["user"], item["labels"], item["state"]])

TypeError: string indices must be integers

我在这里想念什么?哪些是“字符串索引”?我确定一旦完成这项工作,我就会遇到更多问题,但是就目前而言,我只是喜欢这个工作!

当我将for陈述调整为

for item in data:
    print item

我得到的是…“问题”-所以我在做一些更基本的错误。这是我的json:

{"issues":[{"gravatar_id":"44230311a3dcd684b6c5f81bf2ec9f60","position":2.0,"number":263,"votes":0,"created_at":"2010/09/17 16:06:50 -0700","comments":11,"body":"Add missing paging (Older>>) links...

当我打印时data,看起来好像真的很奇怪:

{u'issues': [{u'body': u'Add missing paging (Older>>) lin...

问题答案:

item您的代码中很可能是字符串;字符串索引是方括号中的那些,例如gravatar_id。因此,我首先要检查您的data变量,以查看您在那里收到了什么;我猜这data是一个字符串列表(或至少一个包含至少一个字符串的列表),而它应该是字典列表。



 类似资料:
  • 问题内容: 我正在学习python并试图将github问题转换为可读形式。使用有关如何将JSON转换为CSV的建议?我想出了这个: 其中“ issues.json”是包含我的github问题的json文件。当我尝试运行它时,我得到 我在这里想念什么?哪些是“字符串索引”?我确定一旦完成这项工作,我还会遇到更多问题,但是就目前而言,我只是希望它可以工作! 当我将陈述调整为 我得到的是…“问题”-所以

  • 我遵循了这个答案:Stanford nlp for python 我使用较长的文本作为输入,并遇到以下错误:

  • 运行此代码时 我得到这个错误 read_bikeins=pdf。PdfFileReader(bikeins)回溯(最近一次呼叫最后一次): 文件“”,第1行,以read\u bikeins=pdf格式。PdfFileReader(比基恩) 文件“C:\Users\Naveen Raj\Anaconda3\lib\site packages\PyPDF2\pdf.py”,第1084行,在init s

  • 问题内容: 我正在尝试获取python 3.4中字节字符串的第一个字符,但是当我对其进行索引时,我得到了: 正如我期望的那样,这对我来说似乎并不直观。 我发现我可以得到我期望的价值,但是对我来说,这就像是一个hack。 有人可以解释为什么会这样吗? 问题答案: 该类型是Binary Sequence类型 ,并且明确记录为包含0到255范围内的整数序列。 从文档中: 字节对象是单个字节的不可变序列。

  • 我正在尝试创建一个程序,该程序将通过GUI读取JSON字符串,然后使用该字符串执行其他功能,在本例中,分解一个数学方程。目前我得到的错误是: “类型错误:字符串索引必须是整数” 我不知道为什么。 我尝试读取的 JSON 如下所示:

  • 问题内容: 我的json文件看起来像这样,我正在尝试在for循环中访问元素。 我这样做是这样的: 但是我收到错误消息:“ TypeError:列表索引必须是整数,而不是dict”。我是python(和json)的新手。有人可以建议我要去哪里错吗? 问题答案: 您遍历该 值 通过引用的名单, 没有 指标。 只需 直接 使用这些值(字典): 您可能想给它一个更有意义的循环名称: