【发布时间】:2020-08-21 09:49:43
【问题描述】:
我是 Pandas Dataframe 的新手。
我需要将传入的JSON 持久化到MySQL 数据库中。
数据库中的列:
column1 -- maps to key1
column2 -- maps to key2
column3 -- maps to key3
传入JSON:payload
{
"key1" : "value11",
"key2" : "value12",
"key3" : "value13",
},
{
"key1" : "value21",
"key2" : "value22",
"key3" : "value23",
}
JSON 在 python 中转换为dictionary。所以,如果我这样做:
from panadas import DataFrame
df = DataFrame(data=list(payload))
print(df)
输出:
键1 键2 键3
价值11 价值12 价值13
价值21 价值22 价值23
但是,我想要一个输出为(插入数据库):
列 1 列 2 列 3
价值11 价值12 价值13
价值21 价值22 价值23
我知道这可以使用:
# values = list of values from each dictionary in payload
# col_name_list = ['Column1', 'Column3', 'Column3']
df = DataFrame(data=values, columns=col_name_list)
但是,我如何确保映射,即Column1 -> Key1 成立。使用该方法,如果有效载荷中键的顺序发生变化,可能会出现我最终将key1 的值插入column2 的情况。
那么,我可以将某种 map 的 dict 键传递给 DataFrame 在为列选择值之前可以引用的列名吗?
【问题讨论】: