如何在python中拆分对值

2024-09-29 02:18:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dict/json结构,如下所示

jdata = {"result": [{"(x1,y1)": "(66, 174)", "(x2,y2)": "(140, 365)"}], "det_no": 1, "exec_time": 0.09536290168762207}
for result in jdata["result"]:
    x1y1 = result["(x1,y1)"][0]
    print(x1y1)

执行上述代码得到的输出只是

(

我想得到两个值,66和174

不太熟悉python。请帮忙


Tags: nojsonfortimeresult结构dictexec
3条回答

使用ast模块

例如:

import ast

jdata = {"result": [{"(x1,y1)": "(66, 174)", "(x2,y2)": "(140, 365)"}], "det_no": 1, "exec_time": 0.09536290168762207}
for result in jdata["result"]:
    x1, y1 = ast.literal_eval(result["(x1,y1)"])
    print(x1, y1)  #  >66 174

试试这个

>>> from ast import literal_eval
>>> jdata = {"result": [{"(x1,y1)": "(66, 174)", "(x2,y2)": "(140, 365)"}], "det_no": 1, "exec_time": 0.09536290168762207}
>>> for result in jdata['result']:
    for key,val in result.items():
        tuple_data = literal_eval(val)
        print(f'{type(tuple_data)}: {tuple_data}')


<class 'tuple'>: (66, 174)
<class 'tuple'>: (140, 365)

简单地用一行表达式:

x1, y1 = jdata["result"][0]["(x1,y1)"][1:-1].split(', ')
print(x1, y1)   # 66 174

相关问题 更多 >