我有一个STRINGS列表,每个列表包含一行文本,如下所示:
{"name":"polygon","all_points_x":[319,469,573,685,786,1005,1008,839,684,576,515,335,319],"all_points_y":[374,310,275,249,232,211,213,230,255,280,300,374,374]}
我想做这样的事情:
x_coordinates = []
y_coordinates = []
iterate through list:
extract numbers
append to x_coordinates if they belong to "all_points_x":
otherwise append to y_coordinates if they belong to "all_points_y"
但是我完全不确定该怎么做。
答案 0 :(得分:1)
所以实际上您拥有的是字典,而不是字符串列表。字典是python中一个不错的工具,因为它们使您可以使用键来访问数据。例如,在您的字典中,键为“名称”,“ all_points_x”和“ all_points_y”,它们在调用时分别返回[“ polygon”](这是一个str),[319,469,573,685,786,1005,1008,839,684,576,515,335,319]的值这些都是整数)和[374,310,275,249,232,211,213,230,255,280,300,374,374](也是整数)。因此,一个简单的答案就是...
d = {"name":"polygon","all_points_x":[319,469,573,685,786,1005,1008,839,684,576,515,335,319],"all_points_y":[374,310,275,249,232,211,213,230,255,280,300,374,374]}
x_coordinates = []
y_coordinates = []
for i in d["all_points_x"]:
x_coordinates.append(i)
for i in d["all_points_y"]:
y_coordinates.append(i)
print(x_coordinates)
print(y_coordinates)
编辑:尝试类似的事情,将pandas元素转换成字典。 (不确定这会对您的密钥产生什么影响)
import pandas
data = pandas.read_csv("data.csv")
d = data.to_dict()
...
EDIT2:我想这应该是您所需要的,假设您希望所有x和y都在一起。
import pandas
import json
x_coordinates = []
y_coordinates = []
data = pandas.read_csv("C://Users//Zak//Documents//Testing//dataset.csv")
data2 = list(data["region_shape_attributes"].values)
for i in data2:
d = json.loads(i)
for x in d["all_points_x"]:
x_coordinates.append(x)
for y in d["all_points_y"]:
y_coordinates.append(y)