簡體   English   中英

使用 python 的 Dictionary from.txt 文件列表

[英]List of Dictionary from .txt file using python

我有一個文本文件,其文本格式類似於 python 的字典格式。 我想使用 Python 將此文本轉換為字典列表。 請幫忙。 我在下面粘貼相同的文本。 如果有人可以提供幫助。 請提及 python 代碼以進行轉換。

{"x": 52.86634363112429, "y": 14.67862889415645, "width": 0.2638522427440633, "keypointlabels": ["left_eye"], "original_width": 433, "original_height": 217},
{"x": 56.91361729719117, "y": 15.412560338864274, "width": 0.2638522427440633, "keypointlabels": ["right_eye"], "original_width": 433, "original_height": 217},
{"x": 54.92677386112197, "y": 16.880423228279916, "width": 0.2638522427440633, "keypointlabels": ["nose"], "original_width": 433, "original_height": 217},
{"x": 53.52862477648069, "y": 20.256507873935902, "width": 0.2638522427440633, "keypointlabels": ["mouth_left_corner"], "original_width": 433, "original_height": 217},
{"x": 56.0305757700493, "y": 20.256507873935902, "width": 0.2638522427440633, "keypointlabels": ["mouth_right_corner"], "original_width": 433, "original_height": 217},
{"x": 54.70601347933652, "y": 23.045447363825627, "width": 0.2638522427440633, "keypointlabels": ["chin"], "original_width": 433, "original_height": 217},
{"x": 25.86605080831409, "y": 15.2073732718894, "width": 0.4618937644341801, "keypointlabels": ["left_eye"], "original_width": 433, "original_height": 217},
{"x": 29.099307159353348, "y": 13.824884792626728, "width": 0.4618937644341801, "keypointlabels": ["right_eye"], "original_width": 433, "original_height": 217}

任何時候您處理格式為 python 對象的數據時,都可以使用ast package 來評估它。 在這種情況下,您需要ast.literal_eval

import ast

with open('path/to/file.txt') as f:
    result = []
    for line in f:
        result.append(ast.literal_eval(line.strip()))

這看起來像 JSON 格式的列表,沒有前后括號。 您也許可以通過將其添加到以下內容來解析它:

import json

def parse_object_list(value_str):
    return json.loads("[" + value_str + "]")

或者,如果它絕對是 Python 事物,您可以使用ast.literal_eval function ,它應該安全地解析 ZA7F5F35426B927411FC9231B56382173 文字:

import ast

def parse_object_list(value_str):
    return ast.literal_eval("(" + value_str + ")")

在此示例中,我將值放在括號中,以便 python 按原樣讀取格式正確的值,並將像這樣的逗號分隔數據行作為元組讀取。

此代碼可能會根據您的輸入起作用。

import json
filename="jsonfile.txt"
with open(filename) as file:
    lines = file.read()
list_of_dict=json.loads('['+lines+']')

#空字典

dictionary = {}
with open("abc.txt") as file: 
  for line in file: 
    (key, value) = line.split()
    dictionary[int(key)] = value 
print ('\ntext file to dictionary=\n',dictionary)

暫無
暫無

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

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