簡體   English   中英

如何將文本文件內容轉換為字典

[英]How to convert a text file content to dictionary

我將字典值寫入了文本文件。 現在,我想讀取相同的文本文件以將內容提取為帶有鍵和值的字典。

文本文件內容采用這種格式

   '5945-01-311-3597': {'NSN': '5945-01-311-3597', 'Nomenclature': 'ARMATURE, ELECTROMAG', 'RFQ_Date': '2-13-2019', 'RFQ_QTY': ' 25', 'Time': '2019-08-14 20:17:56', 'Add_method': 'Dibbs Extract'}, '3110-00-365-4766': {'NSN': '3110-00-365-4766', 'Nomenclature': 'BEARING, BALL, ANNULA', 'RFQ_Date': '2-13-2019', 'RFQ_QTY': ' 29', 'Time': '2019-08-14 20:17:56', 'Add_method': 'Dibbs Extract'}, '3120-01-584-4379': {'NSN': '3120-01-584-4379', 'Nomenclature': 'BEARING, WASHER, THRU', 'RFQ_Date': '2-13-2019', 'RFQ_QTY': ' 1', 'Time': '2019-08-14 20:17:56', 'Add_method': 'Dibbs Extract'},

所以一對鍵值對看起來像這樣

  '5945-01-311-3597': {'NSN': '5945-01-311-3597', 'Nomenclature': 'ARMATURE, ELECTROMAG', 'RFQ_Date': '2-13-2019', 'RFQ_QTY': ' 25', 'Time': '2019-08-14 20:17:56', 'Add_method': 'Dibbs Extract'} 

其中5945-01-311-3597是關鍵,而brack中的其他所有內容都是值。

 RFQ_file=open("RFQs/8-14-2019-rfq.txt", "r")

 RFQ_file_content =RFQ_file.read()

 rfqDict = RFQ_file_content.split('},')

上面的代碼產生此輸出

'5945-01-311-3597':{'NSN':'5945-01-311-3597','命名':'ARMATURE,ELECTROMAG','RFQ_Date':'2-13-2019','RFQ_QTY' :'25','時間':'2019-08-14 20:17:56','添加方法':'摘要提取'

將上面的文本文件內容轉換為字典的最佳方法是什么,以便我可以獲得特定鍵的值?

您可以使用json包將string轉換為dict

例如,

import json

with open(PATH_TO_YOUR_DATA, 'r') as f:
    data = json.load(f)

然后,您可以從dict data獲得所需的值。

請注意,文件中可能包含逗號,這可能會導致JSON加載失敗。

嘗試:

import json

# read data
with open('data.txt', 'r') as file:
    data = file.read()

data = data.strip().rstrip(',')  # remove potential blank lines and trailing comma

your_dict = json.loads(data)

保存文件時,請嘗試使用json.dumps(your_dict)避免這些問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM