Python 如何使用此特定数据结构从.txt文件创建字典?

Python 如何使用此特定数据结构从.txt文件创建字典?,python,json,list,dictionary,txt,Python,Json,List,Dictionary,Txt,我正在使用的txt文件包含如下内容: [ { "Data": "asdf", "Monday": "321.247", "Tuesday": "27.801", "Thursday": "35.235" }, { "Data": "whatever"

我正在使用的txt文件包含如下内容:

[
  {
    "Data": "asdf",
    "Monday": "321.247",
    "Tuesday": "27.801",
    "Thursday": "35.235"
  },
  {
    "Data": "whatever",
    "Monday": "321.247",
    "Tuesday": "207.568",
    "Thursday": "31.027",
    "Wednesday": "56.902"
  }
]
我想创建一个具有相同结构的字典,这样我就可以用“Data”字段作为第一级关键字,用week days作为第二级关键字,用数值作为值来重新组织它。 我试着用json库导入它,但我真的不知道下一步该怎么做,因为我能用它创建的只是一个列表

编辑:

执行以下操作时:

with open(".../file.txt") as file:
  data=json.load(file)

type(data)
我得到:

list
我期望得到的是一本字典,如:

data

您可以使用eval,它将在读取文件后创建字典

with open('test', 'r') as reader:
    d = eval(reader.read())
print(d)
输出:

[{'Data': 'asdf', 'Monday': '321.247', 'Tuesday': '27.801', 'Thursday': '35.235'}, {'Data': 'whatever', 'Monday': '321.247', 'Tuesday': '207.568', 'Thursday': '31.027', 'Wednesday': '56.902'}]
# using above data structure you can create your leveled key as you want 
{'asdf': {'Monday': '321.247', 'Tuesday': '27.801', 'Thursday': '35.235'}, 'whatever': {'Monday': '321.247', 'Tuesday': '207.568', 'Thursday': '31.027', 'Wednesday': '56.902'}}

使用这种嵌套的dict理解有点棘手,但仔细想想,你就会明白(请随意要求更多解释…),效率方面我认为这是最好的方法:

a = [
  {
    "Data": "asdf",
    "Monday": "321.247",
    "Tuesday": "27.801",
    "Thursday": "35.235"
  },
  {
    "Data": "whatever",
    "Monday": "321.247",
    "Tuesday": "207.568",
    "Thursday": "31.027",
    "Wednesday": "56.902"
  }
]

modified_a = {item["Data"]:{key:val for key,val in item.items() if key!="Data"} for item in a}

print(modified_a)
输出:

[{'Data': 'asdf', 'Monday': '321.247', 'Tuesday': '27.801', 'Thursday': '35.235'}, {'Data': 'whatever', 'Monday': '321.247', 'Tuesday': '207.568', 'Thursday': '31.027', 'Wednesday': '56.902'}]
# using above data structure you can create your leveled key as you want 
{'asdf': {'Monday': '321.247', 'Tuesday': '27.801', 'Thursday': '35.235'}, 'whatever': {'Monday': '321.247', 'Tuesday': '207.568', 'Thursday': '31.027', 'Wednesday': '56.902'}}

您是否尝试过导入json并调用
json.load
?1)到目前为止,您尝试了什么,您遇到了什么困难?2) 您期望的输出是什么?请同时使用这两个选项更新问题。请删除您的问题并将您的尝试代码添加到其中。请注意,这些“数值”是字符串而不是数字。使用
data=json.load(file)
的代码运行良好。您的txt文件包含JSON列表。您希望如何将它们转换为一本词典?请添加您期望的字典结构。使用
eval()
通常是一种安全风险,在这里是不必要的。