所以我试图让JSON转储从Python中处理过的CSV创建的字典。
创建字典的方法:
def createUUIDDocIDLink(path):
dict = defaultdict
with open(path) as citTSV:
header = 0
for line in csv.reader(citTSV, dialect = "excel-tab"):
if header > 0 and line[1] not in dict:
dict[line[1]] = [line[0]]
elif header > 0 and line[1] in dict:
dict[line[1]].append(line[0])
header += 1
return dict
转储字典的方法:
def dumpCreateUUIDDocIDLink():
with open("D:/Coding/FE_InOut/dumpUUIDDocIDLookup",'w') as ULookup:
output = json.dump(createUUIDDocIDLink("D:/Coding/FE_InOut/ipcr.tsv"),ULookup)
return output
我收到的错误是:
"引发TypeError(repr(o)+"不是JSON可序列化的")
TypeError:class' collections.defaultdict'不是JSON可序列化"
我哪里错了?为什么我不能将这个字典存储在内存中?有没有人有我可以使用的解决方法?
非常感谢你的时间和时间。救命, 如果需要进一步澄清,请告诉我。
答案 0 :(得分:1)
这一行:
dict = defaultdict
错了。要声明包含列表的defaultdict,您必须编写:
dict = defaultdict(list)
但是你无论如何都不需要deafultdict,因为你自己正在处理初始化。我也不会将dict
用作变量名,因此我只需将该行替换为:
mydict = {}
并确保引用dict
的所有命令现在都引用mydict
。