如何将文本文件转换成字典?
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)
我只使用过键值对,其中
{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)