我正在查询与MariaDB接口的API,这就是我获取数据的方式。
{'TestTable': {'columns': ['Name', 'Id'], 'records': [['Jack', 1], ['Jill', 2]]}}
我想要实现的是在记录之前打印列,如下所示:
Name: Jack
Id: 1
Name: Jill
Id: 2
我试图获取数据并将列和记录放入不同的列表然后我的想法是使用if来匹配索引,如果匹配则打印到上面的格式,但它是错误的索引。不幸的是,经过大约5种不同的方式和3个小时后试图让它上班,我意识到我完全不知道自己在做什么:
jsonData = json.loads(reqGet.text)
columns = jsonData['TestTable']['columns']
records = jsonData['TestTable']['records']
for idx, val in enumerate(records):
print(idx, val)
输出:
0 ['Jack', 1]
1 ['Jill', 2]
除了“你考虑过挖沟吗?”之外的任何想法都会很棒。
答案 0 :(得分:1)
使用您自己的代码:
jsonData = json.loads(reqGet.text)
columns = jsonData['TestTable']['columns']
records = jsonData['TestTable']['records']
只需改变你的for
循环,然后使用相同的索引进行迭代:
for i in range(len(records)):
data = records[i] # e.g. when i=0, data = ["Jack", 1]
for j in range(len(columns)):
print(col[j], data[j])
答案 1 :(得分:1)
d={'TestTable': {'columns': ['Name', 'Id'], 'records': [['Jack', 1], ['Jill', 2]]}}
for record in d['TestTable']['records']:
for col_name, value in zip(d['TestTable']['columns'], record):
print('{}: {}'.format(col_name, value))
将打印出来
Name: Jack
Id: 1
Name: Jill
Id: 2
答案 2 :(得分:0)
您可以将其读取为pandas数据帧:
import pandas as pd
d = {'TestTable': {'columns': ['Name', 'Id'], 'records': [['Jack', 1], ['Jill', 2]]}}
df = pd.DataFrame(data=d['TestTable']['records'],columns=d['TestTable']['columns'])
df看起来像这样:
Name Id
0 Jack 1
1 Jill 2
打印循环遍历行并使用值连接索引:
for idx,row in df.iterrows():
for item in zip(row.index,row.values):
print(': '.join([str(i) for i in item]))
结果:
Name: Jack
Id: 1
Name: Jill
Id: 2