python - JSON数据通过python转换为字符串数据
问题描述
我想将下面的 JSON 数据转换为与下面相同的字符串数据。
{
"Time Series (Daily)": {
"2020-04-02": {
"1. open": "1693.5300",
"2. high": "1726.7600",
"3. low": "1664.1300",
"4. close": "1724.8600",
"5. volume": "766313"
},
"2020-04-01": {
"1. open": "1737.2800",
"2. high": "1762.4399",
"3. low": "1685.3700",
"4. close": "1685.4600",
"5. volume": "1243600"
}
}
转换成这样
^KS11 |20200402|1664.1300 |1693.5300 |1726.7600 |1724.8600 |
^KS11 |20200401|1685.4600 |1737.2800 |1762.4399 |1685.3700 |
解决方案
如果您以字符串形式提供 json 数据,我建议您使用json包,如下所示:
import json
jdata = """
{
"Time Series (Daily)": {
"2020-04-02": {
"1. open": "1693.5300",
"2. high": "1726.7600",
"3. low": "1664.1300",
"4. close": "1724.8600",
"5. volume": "766313"
},
"2020-04-01": {
"1. open": "1737.2800",
"2. high": "1762.4399",
"3. low": "1685.3700",
"4. close": "1685.4600",
"5. volume": "1243600"
}
}
}"""
def day_to_str(day, data):
return '|'.join(('^KS11 ',
day.replace('-', ''),
data['1. open'],
data['2. high'],
data['3. low'],
data['4. close'],
''))
time_series = json.loads(jdata)['Time Series (Daily)']
for day in time_series:
print(day_to_str(day, time_series[day]))
输出:
^KS11 |20200402|1693.5300|1726.7600|1664.1300|1724.8600|
^KS11 |20200401|1737.2800|1762.4399|1685.3700|1685.4600|
推荐阅读
- python - 关于 Neo4j + Flask 登录项目的问题
- typescript - 无法将 isoWeekDay 与矩变量一起使用
- python - Pandas 通过检查列表元素是否包含值进行选择
- r - 防止 R 自动获取已安装软件包的最新版本?
- javascript - 是否可以查看 JSON 文件中的多个对象分组?
- python - 如何编写一个递归函数来计算几年后的硬币净值?
- r - Optim() 函数以小数为单位变化?
- oracle-apex - 将应用程序导入/导出到新环境时的 Oracle APEX 应用程序安全性
- visual-studio - 是否可以将 Visual Studio 2019 配置为在解决方案资源管理器中对旧样式和新 SDK 样式项目进行相同处理?
- jinja2 - 在这种情况下,模数 (%) 是什么意思?(姜戈)