2017-04-09 22 views
0

我有以下的JSON:如何從python的JSON文件中打開數組?

{u'messagetype': u'writefft', u'fftData': [[0, 1, 2, 1, 2, 4, 1, 0]]} 

我怎樣才能解開這個,所以我可以打印陣列「fftData」的每一個數據?

嘗試:

data = json.loads(request.body) 
fftData = (data["fftData"]) 
print (data["fftData"]) 

但我不achiev我需要什麼...

  • 這是什麼打印:
  • [0,1,2,1, 2,4,1,0]]
  • 我想打印的內容:
  • 0,1,2,1,2,4,1,0

  • 嘗試:打印(fftData [0])

  • 把它打印:[0,1,2,1,2,4,1,0]

有人可以幫助我?

+0

如果數據是[[1,2],[3,4]]'? –

回答

1

正確的方法:

print(', '.join(str(i) for i in data["fftData"][0])) 

的偷偷摸摸:

print(str(data["fftData"]).strip('[]')) 
-1
for value in data["fftData"][0]: 
    print(value) 
+0

這不符合OP的要求。 –

+0

這不包括逗號。 – mattsap

+0

如何使用python從JSON文件中打開數組? –

2

[[0, 1, 2, 1, 2, 4, 1, 0]]是一個列表作爲它的第一個元素的列表。

相反,提取內部列表方式:

fftData = data["fftData"][0] 

現在將打印[0, 1, 2, 1, 2, 4, 1, 0]

然後打印出您的清單,我只是把它轉換成字符串,然後取出通過切分字符串來創建首字母和末字符。

print(str(fftData)[1:-1]) 
+0

你的回答是正確的,但不幸的是,我領先的值包含一個巨大的浮點數/數字與'-e'。你知道另一種打印我想要的東西的方法嗎?謝謝。 –

+0

你能更新你的問題並提供一個例子嗎?你用-e表示什麼意思?我不認爲這會影響結果。代碼仍然適用於這種情況 - 除非你想爲大數字做一些特殊的事情。 – mattsap

+0

'* 10x'的'-e'。我會更新我的問題,但謝謝。 –