TypeError:'int'对象不可迭代,使用 Python 3 [关闭]
Posted
技术标签:
【中文标题】TypeError:\'int\'对象不可迭代,使用 Python 3 [关闭]【英文标题】:TypeError: 'int' object is not iterable, Using Python 3 [closed]TypeError:'int'对象不可迭代,使用 Python 3 [关闭] 【发布时间】:2019-01-12 01:44:24 【问题描述】:我在尝试清理 json 数据、将其保存到另一个 json 并最终将其转换为 csv 文件时遇到此错误: 对于 n 中的 data1:TypeError: 'int' object is not iterable
这是我的代码:
import json
import csv
with open('leap_data.json') as f:
data = json.load(f)
#print(data)
cnt=0
final_list=
for k,v in data.items():
for m,n in v.items():
#print n
cnt=cnt+1
#print cnt
if cnt==6:
#print n
for data1 in n:
for a,b in data1.items():
final_list[a]=b
with open('output4.json', 'a') as outfile:
json.dump(final_list,outfile)
my_list = "["+open('output4.json').read().replace("",",")+"]"
data_1 = json.loads(my_list)
print(data_1)
with open(r'samp.csv', 'w+') as csvfile:
output = csv.writer(csvfile)
output.writerow(data_1[0].keys())
for row in data_1:
output.writerow(row.values())
请建议如何摆脱这个
【问题讨论】:
n
显然是一个整数。您的代码与输入数据不匹配。
但是这段代码在 Python 2 中运行
您应该将该信息添加到问题中。 json 或其他一些库可能在 2 和 3 之间发生了变化。
相同的代码在 Python 2 中运行良好。仅在 .item() 的情况下,我在 Python 2 中使用了 .iteritems()。
您还应该提供输入数据
【参考方案1】:
字典的 .items() 在 Python3 中不返回列表。 请参考这个question
示例 Python2 代码
for k, v in features.items():
等效的 Python3 代码
for k, v in list(features.items()):
您在 Python3 中的代码(在 pythonconverter 中生成)
import json
import csv
with open('leap_data.json') as f:
data = json.load(f)
#print(data)
cnt=0
final_list=
for k,v in list(data.items()):
for m,n in list(v.items()):
#print n
cnt=cnt+1
#print cnt
if cnt==6:
#print n
for data1 in n:
for a,b in list(data1.items()):
final_list[a]=b
with open('output4.json', 'a') as outfile:
json.dump(final_list,outfile)
my_list = "["+open('output4.json').read().replace("",",")+"]"
data_1 = json.loads(my_list)
print(data_1)
with open(r'samp.csv', 'w+') as csvfile:
output = csv.writer(csvfile)
output.writerow(list(data_1[0].keys()))
for row in data_1:
output.writerow(list(row.values()))
希望这行得通!
【讨论】:
同样的错误仍然存在。对于 n 中的 data1:TypeError:'int' 对象不可迭代 你能分享示例输入 json 文件吗?以上是关于TypeError:'int'对象不可迭代,使用 Python 3 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:'int'对象不可迭代 - Python
Python Crawling-TypeError:'int'对象不可迭代