我有一个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文件中读取它。我可以看到数据有输出但不知道我将如何使用它。
任何指针都会受到赞赏。
答案 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]
)]