从API我得到了json响应:
Sub Test()
Dim sMonthOfMaintenance As String
Dim sMonthOfMaintenanceNumber As String
sMonthOfMaintenance = InputBox("What month are you reviewing?")
If UCase(sMonthOfMaintenance) = "JANUARY" Or "JAN" Then
sMonthOfMaintenanceNumber = "01"
End If
End Sub
我想根据' nazwa'对几个json对象进行分组。键。
例如:
<link rel="stylesheet" href="https://cdn.pydata.org/bokeh/release/bokeh-0.12.14.min.css" type="text/css" />
<link rel="stylesheet" href="https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.14.min.css" type="text/css" />
<link rel="stylesheet" href="https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.14.min.css" type="text/css">
<script type="text/javascript" src="https://cdn.pydata.org/bokeh/release/bokeh-0.12.14.min.js"></script>
<script type="text/javascript" src="https://cdn.pydata.org/bokeh/release/bokeh-api-0.12.14.min.js"></script>
<script type="text/javascript" src="https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.14.min.js"></script>
<script type="text/javascript" src="https://cdn.pydata.org/bokeh/release/bokeh-tables-0.12.14.min.js"></script>
任何提示如何做到这一点?
答案 0 :(得分:0)
text = "[{'wartosc': '3.59', 'aktualizacja': '1519933403', 'nazwa': 'artekroom', 'nazwa_ui': 'Pokój Artura', 'id_punktu': 1, 'jakosc_sygnalu': None, 'czujnik': 'bat', 'jednostka': 'V', 'minimum': 0.0, 'maksimum': 5.0}, {'wartosc': '1020', 'aktualizacja': '1519584193', 'nazwa': 'artekroom', 'nazwa_ui': 'Pokój Artura', 'id_punktu': 1, 'jakosc_sygnalu': None, 'czujnik': 'press', 'jednostka': 'hPa', 'minimum': 0.0, 'maksimum': 1600.0}, {'wartosc': '21.2', 'aktualizacja': '1519576134', 'nazwa': 'artekroom', 'nazwa_ui': 'Pokój Artura', 'id_punktu': 1, 'jakosc_sygnalu': None, 'czujnik': 'temp', 'jednostka': '*C', 'minimum': -50.0, 'maksimum': 100.0}, {'wartosc': '23.8', 'aktualizacja': '1520020905', 'nazwa': 'testnode', 'nazwa_ui': 'Testowy', 'id_punktu': 15, 'jakosc_sygnalu': -75, 'czujnik': 'temp', 'jednostka': '*C', 'minimum': -50.0, 'maksimum': 100.0}, {'wartosc': '3.10', 'aktualizacja': '1520011249', 'nazwa': 'testnode', 'nazwa_ui': 'Testowy', 'id_punktu': 15, 'jakosc_sygnalu': -75, 'czujnik': 'bat', 'jednostka': 'V', 'minimum': 0.0, 'maksimum': 5.0}]"
# import json
# data = json.loads( text )
data = eval(text)
final_data = {}
for item in data:
d = {"czujnik": item["czujnik"],
"wartosc": item["wartosc"],
"maksimum": item["maksimum"],
"minimum": item["minimum"],
"aktualizacja": item["aktualizacja"],
"jednostka": item["jednostka"]}
if item['nazwa'] in final_data:
final_data[item['nazwa']]['readings'].append(d)
else:
final_data[item['nazwa']] = {
"id_punktu": item["id_punktu"],
"nazwa_ui": item["nazwa_ui"],
"readings": [d]
}
print(final_data)
您需要迭代解析的JSON数据。在这里,我根据您的输入使用了eval。您也可以使用json
模块。它根据解析的数据创建另一个字典。