簡體   English   中英

如何使用 for 循環與 python 進行字典?

[英]How to dictionary with python using for loop?

我有以下 python 腳本(有些行不存在,因為不需要):

aps = c.get_aps()
ap_names = [{'IP':ap['ip'], 'Name':ap['name'], 'MAC':ap['mac']} for ap in aps]

output如下:

[{'IP': '192.168.30.19', 'Name': 'Antenna #1', 'MAC': '44:d9:e7:be:01:e8'},
{'IP': '192.168.30.24', 'Name': 'Antenna #2, 'MAC': '44:d9:e7:d2:64:1e'}]

但是當我在使用數據之前去https://jsonlint.com/檢查 JSON 結構是否有效時,我得到了錯誤:

Error: Parse error on line 1:
    [{          'IP': '192.168.30.19
------------^
Expecting 'STRING', '}', got 'undefined

我知道這是一個新手問題,我很抱歉。 我是使用這個的初學者,所以請,有人可以幫我一點嗎?

PS:還有另一條線不是我創作的,雖然對我有用但不是真的。

ap_names_old = dict([(ap['mac'], ap.get('name')) for ap in aps])

這輸出:

{'44:d9:e7:be:01:e8': 'Antenna #1', '44:d9:e7:d2:64:1e': 'Antenna #2'}

它還在 JSON Lint 上向我返回了一個錯誤,這也對我沒有幫助,因為我正在嘗試構建這樣的東西(在 JSON Lint 檢查上通過 OK):

[{
    "ip": "192.168.1.1",
    "name": "Antenna #1",
    "mac": "xx:xx:xx:xx"
}, {
    "ip": "192.168.1.2",
    "name": "Antenna #2",
    "mac": "xx:xx:xx:xx"
}]

再一次 -我真的很抱歉這個問題,我知道這一定是一個非常愚蠢的問題 - 但我不知道除了 StackOverflow 之外 go 去哪里,我是一名學生/實習生,沒有前輩來幫助我在哪里我工作在。

提前致謝。 我非常感謝任何提示、指南、文檔等,因為我不介意閱讀數千頁來完成這項工作!

我會使用 json 模塊及其 function json.dumps()。

import json
a = [dict({'IP': '192.168.30.19', 'Name': 'Antenna #1', 'MAC': '44:d9:e7:be:01:e8'}), dict({'IP': '192.168.30.24', 'Name': 'Antenna #2', 'MAC': '44:d9:e7:d2:64:1e'})]
print(a)  # output in jsonlint gives your error
print(json.dumps(a))  # now correct in jsonlint.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM