Python 删除将json数组转换为元组后出现的逗号

Python 删除将json数组转换为元组后出现的逗号,python,arrays,json,Python,Arrays,Json,我在json数组中有一个值数组。我想将这些值转换成成对的元组,我已经这样做了,但出于某种原因,每个元组对的末尾都会出现一个逗号。有人能告诉我如何去掉逗号吗 JSON: m= [ [ [ -118.221524, 34.034603 ], [ -118.2

我在json数组中有一个值数组。我想将这些值转换成成对的元组,我已经这样做了,但出于某种原因,每个元组对的末尾都会出现一个逗号。有人能告诉我如何去掉逗号吗

JSON:

m=    [
            [
                [
                    -118.221524,
                    34.034603
                ],
                [
                    -118.273798,
                    34.038365
                ]
            ]
        ]
联机研究了解如何应用格式来删除逗号

for i in m:
    for j in i:
        lines=tuple(j)
        a = []
        a.append(lines)
        print(tuple(a))
预期:

((-118.27373, 34.038352))
((-118.273798, 34.038365))
实际:

((-118.27373, 34.038352),)
((-118.273798, 34.038365),)

在Python中,元组被打印(或多或少地定义)为有一个尾随逗号(更多信息。您可以看到实际写入元组对象
repr
的源代码(假设您使用的是CPython解释器)

不过,如果您愿意放弃使用元组,而使用列表(看起来您已经在尝试这样做了),您可以这样做:

对于以m表示的i:
对于i中的j:
行=元组(j)
a=[]
a、 追加(行)
#注意,这打印的是'a',它是一个数组而不是元组
印刷品(a)
#印刷品:
# [(-118.27373, 34.038352)]
# [(-118.273798, 34.038365)]
如果确实要使用元组,最好在外部元组上进行一些手动格式化,如下所示:

对于以m表示的i:
对于i中的j:
行=元组(j)
a=[]
a、 追加(行)
#注意,这打印的是'a',它是一个数组而不是元组
a=元组(a)
打印(“({})”格式(a[0]))
# ((-118.221524, 34.034603))
# ((-118.273798, 34.038365))

希望这有帮助!

删除逗号的唯一方法是不要打印元组本身(即,
print(tuple(a))
),因为python实现添加了逗号以表示它是元组

相反,您可以创建一个函数,该函数接受一个1-D元组(对于一个更简单的示例),并创建一个自定义字符串,然后打印该字符串,即la:

def打印组(t):
s='('
对于i,枚举中的val(t):
s+=f'{t[i]}'
如果i!=len(t)-1:
s+=','
s+='))'
印刷品
#试验
a=元组([1,2,3])
打印(1,2,3))

Single element元组使用逗号将它们与简单的分组括号区分开来。逗号没有任何作用。它与什么上下文有关?用于表示?在图形上绘制直线时将它们视为坐标,我在想,如果去掉逗号会有区别,但元组的区别是这样的erentiated,也许我应该保持原样。你有什么建议吗?后面的逗号没有任何作用。打印时它就在那里,这样你就可以知道它是一个元组。它实际上并不“存在”或者影响任何东西。理解。感谢您的反馈。不过,如果您想出于演示目的而删除它,您可以使用
*
解包元组,或者将其转换为列表,或者
加入它。尽管我不会使用列表来“删除”逗号。元组确实有其好处。“你打印的是一个元组而不是一个集合的视觉提示”你能详细说明一下吗?集合是用花括号区分的,所以我不确定元组与它们有什么关系。对不起,我在想python 2中的集合是用paren打印的(但也要在paren前面加上
set
)。我用一个链接更新了答案,该链接指向讨论元组以及为什么它们后面有逗号的文档。使用元组的
str()
/
repr()
应该比手动构造字符串容易得多。老实说,只使用
join
,”。join(元组(a[0]))
,然后根据需要在其周围添加一些括号。当然可以。但是,它不支持更多的定制格式要求,也不支持多维元组