如何将文本文件转换成字典?

How to convert text file into dict?

我只使用过键值对,其中 {a:"b", d:"c"} 只有 2 个值。如果我有一个类似这样的文件

{
  "personalInformationDeltaEmployee": {
    "employeeID": "0",
    "actualSSN": null
  },
  "appointmentDeltaEmployee": {
    "cyberSecurityCode3": "0",
    "POID": "0"
  }
}

我们假设这个文件是一个 txt 文件。我如何将这样的东西转换成字典?

这是我试过的:

try:
    with open(filename) as f:
        line_dict = {}
        for part in filename:
            key, value = part.split(":")
            line_dict[key] = value
except Exception as e:
    print e

我需要不止 1 个值来解压。我猜它对额外的支架很生气,对吧?解决此问题的最佳方法是什么?我可以研究哪些选项?

由于数据是JSON格式,可以使用json模块解析成Python字典。在 Python 中,有 2 个字符串不是 Unicode,因此您还需要将输入中的所有 Unicode 字符串转换为该格式。

以下是使用辅助函数执行此操作的方法。请注意,结果中项目的顺序可能与输入的顺序不同,因为在 Python 2 中,字典不保留插入顺序。

import json
from pprint import pprint
import sys

if sys.version_info[0] > 2:
    raise RuntimeError('Requires Python 2')

def unicode_convert(obj):
    """ Convert unicode data to string in object and return it. """

    if isinstance(obj, unicode):
        obj = obj.encode()
    elif isinstance(obj, list):
        obj = map(unicode_convert, obj)
    elif isinstance(obj, dict):  # Converts contents in-place.
        for key, value in obj.items():  # Copy of dict's (key, value) pairs (Py2)
            del obj[key]
            if isinstance(key, unicode):
                key = key.encode()
            if isinstance(value, (unicode, list, dict)):
                value = unicode_convert(value)
            obj[key] = value

    return obj


with open('personal_info.json') as file:
    info = json.load(file)  # Parse JSON object into Python dictionary.
    line_dict = {key: value for key, value in unicode_convert(info).items()}

pprint(line_dict)