Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 从字符串列表中提取数字并根据其标签将其分配到另一个列表_Python 3.x - Fatal编程技术网

Python 3.x 从字符串列表中提取数字并根据其标签将其分配到另一个列表

Python 3.x 从字符串列表中提取数字并根据其标签将其分配到另一个列表,python-3.x,Python 3.x,我有一个字符串列表,每个字符串包含一行文本,如下所示: {"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

我有一个字符串列表,每个字符串包含一行文本,如下所示:

{"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"

但我根本不知道如何做到这一点。

因此,实际上,您拥有的是一本词典,而不是字符串列表。字典在python中是一个很好的工具,因为它允许您使用密钥访问数据。例如,在您的字典中,键为“name”、“all_points_x”和“all_points_y”,调用时返回[“polygon”](这是一个str)、[319469573685786100510088839684576515319](这些都是int)和[3743102752492322121323025280300374374](也称int)的相应值。所以你的问题的简单答案是

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元素转换为字典。(不确定这会对您的钥匙造成什么影响)

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)

您的示例输入似乎是一个dict,而不是一个列表。dict包含字符串键,一些值是int的列表。这是json吗?请看,它是从CSV文件中提取的字符串。谢谢,但我有一个问题,我从CSV文件中读取了它,比如:data=pandas.read_CSV(“data.CSV”),然后是d=list(data[“region\u shape\u attributes”].values),所以我会得到:TypeError:list索引必须是整数,没有运行您刚刚编写的代码。很抱歉,我现在看到您提到它来自csv文件。有没有可能我可以在它的峰值或csv文件的精简版本?是的,它在评论中,所以我的问题可能不是最好的。我已经上传了文件在这里:谢谢帮助!:)
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)