[英]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.