【发布时间】:2014-03-10 16:40:50
【问题描述】:
我在一个文本文件中有这种格式的数据。 我想要的只是在字典数据结构中的字典中隐藏此内容
('Marks_Subjects ', "[['Time', 'maths', 'Science', 'english'], ['2013-08-31-16', 100, 50, 65], ['2013-08-31-17', 90, 50, 65], ['2013-08-31-18', 80, 60, 85]]")
我希望输出是这样的:-
{'Marks': {'maths': {'2013-08-31-16': {'Subjects': '100'}},
'Science':{'2013-08-31-16': {'Subjects': '50'}},
'maths':{'2013-08-31-16': {'Subjects': '65'}}} and so on for 17:00 and 18:00 too
这里是代码sn-p:-
import sys
import json
def module2():
title, data = ('Marks_Subjects ', "[['Time', 'maths', 'Science','english'],['2013-08-31-16', 100, 50, 65], ['2013-08-31-17', 90, 50, 65],['2013-08-31-18', 80, 60, 85]]")
title, sub_title = title.split('_')
data = json.loads(data.replace("'", '"'))
data = dict(zip(*data))
date = data.pop('Time')
#for subject, value in data.iteritems():
print {title: {subject: {date: {sub_title: value}} for subject, value in data.iteritems()}}
模块2()
我拆分标题 Marks_Subjects 以便 Marks 是我的 Title,Subjects 是我的 sub_title。 json.loads 将 unicode 字符串转换为 python 数据结构 data.zip 映射 2 个列表的索引。 这里的问题是我收到了这个错误
ValueError: 字典更新序列元素#0 的长度为 9; 2 是必需的
我猜这意味着 zip 函数只能压缩 2 个列表。我想将 ["Time", "Maths", "Science", "English"] 的第一个列表的索引与其余列表一起压缩。
所以我想必须运行一个循环才能实现这一点。但我需要一些帮助。
如果我的“数据”中有 2 个列表,那么它就可以正常工作。
【问题讨论】:
-
到目前为止你尝试过什么?你被困在哪里了?请更具体地说明您的问题。
-
我只卡在开头。我所拥有的只是将上述内容保存在文本文件中,我必须将其转换为字典。因为我是 python 新手。我有点卡住从哪里开始,因为我无法弄清楚如何摆脱“_”,以便将标记和主题视为分开。你能提供任何帮助吗?谢谢:)
标签: python