python - 获取 JSON 中的所有元素
问题描述
我有一个列出股票的 JSON 文件:
{
"MSFT": [
{
"2019-12-12 17:55:10.209859": [
{
"1. open": "152.4000",
"2. high": "152.4000",
"3. low": "152.3420",
"4. close": "152.3750",
"5. volume": "45689"
}
]
},
{
"2019-12-12 17:56:21.124256": [
{
"1. open": "152.3800",
"2. high": "152.4100",
"3. low": "152.3500",
"4. close": "152.3896",
"5. volume": "21770"
}
]
},
{
"2019-12-12 17:57:26.149805": [
{
"1. open": "152.3800",
"2. high": "152.3800",
"3. low": "152.2200",
"4. close": "152.2250",
"5. volume": "33914"
}
]
},
{
"2019-12-12 17:58:30.483878": [
{
"1. open": "152.2240",
"2. high": "152.3675",
"3. low": "152.0272",
"4. close": "152.0940",
"5. volume": "127676"
}
]
}
]
}
我想遍历所有元素,并获得日期。就像我想要一个数据结构:
data = { 'date':{'open' = y, 'highest' = x, 'lowest' = z, 'close' = k, 'volume='d} }
我应该如何解决这个问题?我正在为一个项目做这件事,我尝试了很多不同的可能解决方案,但都没有奏效。请让我知道如何解决这个问题。非常感谢你!
解决方案
如果您想解开这种结构,那么我相信以下代码段可能会对您有所帮助:
tmp = [x.popitem() for x in j_content['MSFT']]
result = dict(zip([x[0] for x in tmp], [x[1].pop() for x in tmp]))
# prints
'''
{
'2019-12-12 17:55:10.209859': {'1. open': '152.4000', '2. high': '152.4000', '3. low': '152.3420', '4. close': '152.3750', '5. volume': '45689'},
'2019-12-12 17:56:21.124256': {'1. open': '152.3800', '2. high': '152.4100', '3. low': '152.3500', '4. close': '152.3896', '5. volume': '21770'},
'2019-12-12 17:57:26.149805': {'1. open': '152.3800', '2. high': '152.3800', '3. low': '152.2200', '4. close': '152.2250', '5. volume': '33914'},
'2019-12-12 17:58:30.483878': {'1. open': '152.2240', '2. high': '152.3675', '3. low': '152.0272', '4. close': '152.0940', '5. volume': '127676'}
}
'''
推荐阅读
- php - 输出带有标题字段的JSON?(作为数据集的 ID)
- chromium-embedded - 谷歌真的会阻止来自嵌入式框架(例如 CEF)的身份验证吗?
- html - 如何通过beautifulsoup过滤带有标准的url链接?可能吗?确实是的
- java - 数据流更新失败:无法解析实验use_shuffle_service_address对应的值
- json - 如何订购 json 文件列表?
- cordova - 如何在 cordova-electron 应用程序中包含或捆绑 node_modules?
- java - 如何将此页面作为对象传递给pom中的下一页?
- python-3.x - 无法在python gui中将字节转换为字符串
- c# - 加载精灵的所有子精灵
- javascript - 如何使用 JavaScript 让“dragAndDrop”与 Selenium 一起工作?