从文件中访问json数据并在python脚本

时间:2017-03-13 19:50:36

标签: python json plotly

我有一个json文件,其中包含:

[{
    "id": "a1",
    "num": "1"
}, {
    "id": "a2",
    "num": "3"
}, {
    "id": "a3",
     "num": "2"
}]

我正在使用情节来绘制它, 这是我的代码:     导入plotly.plotly为py     将plotly.graph_objs导入为go     导入json     来自pprint import pprint

with open('output.json') as data_file:
    data = json.load(data_file)

    pprint(data)


  data = [go.Bar(
        x=['a1', 'a2', 'a3'],
        y=[1,3,2]
        )]

  py.iplot(data, filename='basic-bar')

而不是

x = ['a1', 'a2','a3']
y=[1,3,2]

我试图通过以下方式访问它:

for key.value in data.items():
    print(key,value)

抛出错误: Traceback(最近一次调用最后一次):   文件" plotlyExample.py",第11行,in     for data.items()中的key.value: AttributeError:' list'对象没有属性'项目'

我想的地方:

a1,a2,a3

将成为钥匙和 1,3,2将是值?

我想从json文件中读取它。我可以看到数据有输出但不知道我将如何使用它。

任何指针都会受到赞赏。

2 个答案:

答案 0 :(得分:0)

在创建图形之前,您必须将json解析为x和y列表

data = json.load(data_file)

# will yield x and y arrays
x = [i['id'] for i in data]
y = [int(i['num']) for i in data]

由于num key的值是字符串,因此在绘制

之前应将它们转换为整数

答案 1 :(得分:0)

使用list comprehension遍历数据的词典列表并返回新列表。

data = [go.Bar(
    x=[x['id'] for x in data],
    y=[int(x['num']) for x in data]
)]