【发布时间】:2021-02-02 17:00:33
【问题描述】:
我有一个要拆分的字典列表,以便它变成一个二维数组。列表中的 2 个字典的示例是:
{"house_size": 93.0, "build_year": 2002.0, "house_color": 3, "price": 2498.0}
{"house_size": 75.0, "build_year": 1954.0, "house_color": 1, "price": 2953.0}
我想用 "," 分割它,这样数组就会有 4 列,其中所有的列都是 1 列。
上半部分正在加载 json 文件。
import os
import json
import numpy
def load_line_json(path):
dataset = []
with open(path, "r") as fp:
for line in fp:
example = json.loads(line)
dataset.append(example)
print("loaded dataset, with {} examples from: {}.".format(len(dataset), path))
return dataset
path_to_dataset = "/Users/PathToFile"
path_to_test = os.path.join(path_to_dataset, "test.json")
assert os.path.isfile(path_to_test)
test_dataset = load_line_json(path_to_test)
dat = []
for string in test_dataset:
dat.append([string for string in string])
print(dat[0])
print("-----------------------\n")
print(test_dataset[0])
print(type(test_dataset))
data = np.array(dat)
data1 = np.array(test_dataset)
print(data)
print("Shape is: ", data.shape)
print("Shape is: ", data1.shape)
我尝试将其拆分如下所示,但它删除了: 之后的值,因此它只是“'house_size'”而不是“'house_size': 93.0”,就像我想要的那样。我把它做成一个数组,形状应该是 (rows, 4) 而不是 (rows,) 在我分裂之前。基本上我想用逗号分隔它。
dat = []
for string in test_dataset:
dat.append([string for string in string])
【问题讨论】:
-
dataset是字典列表,而不是字符串列表。 -
好的,谢谢,我只是假设是字符串,我将编辑我的问题
-
使用
string.entries()获取键和值的序列。 -
顺便说一句,像这样重用相同的
string变量真的很混乱。 -
dat = [list(d.values()) for d in test_dataset]?
标签: python arrays string list numpy