Python - 使用JSON响应

时间:2017-08-28 18:36:54

标签: python json csv

我正在调用API并收到类似这样的回复:

'[{"time": 1477612800', ' "close": 5000', ' "high": 5000', ' "low": 
2100', ' "open": 2100', ' "volumefrom": 0.08311', ' "volumeto": 
414.42}', ' {"time": 1477699200', ' "close": 4000', ' "high": 30000', ' 
"low": 4000', ' "open": 12001', ' "volumefrom": 9.88', ' "volumeto": 
46066.49}', ...]'

我想要的是制作一个每行都是'时间'值和列将是其余值(close,open,high,low)。

我很丢失,我发现的大部分资源都假设我的数据以不同的格式发回。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

首先,您的JSON响应似乎没有效果,不应该在其中包含任何单引号。使用正确的响应,首先需要将字符串加载到json:

import json
response_string = '[{"time": 1477612800, "close": 5000, "high": 5000, "low": 2100, "open": 2100, "volumefrom": 0.08311, "volumeto": 414.42}, ...]'
response_json = json.loads(response_string)

然后你可以随时打印这些值(使用Python 3.6特性f字符串):

for item in response_json:
    print(f'{item["time"]},{item["close"]},{item["high"]},{item["low"]},{item["open"]},{item["volumefrom"]},{item["volumeto"]}')

或没有f-strings(Python 3.5及更低版本):

for item in response_json:
    print(item["time"] + ',' + item["close"] + ',' + item["high"] + ',' + item["low"] + ',' + item["open"] + ',' + item["volumefrom"] + ',' + item["volumeto"]')