我有以下PandasDF
data
day 2021-09-30
value1 730716000
value2 974689000
value3 375689000
value4 369077000
字符串
我如何将这个DF转换为JSON,就像这样:
{
"day": "2021-09-30",
"value1": 702228000,
"value2": 924465000,
"value3": 309753000,
"value4": 306252
}
型
我最好的尝试是:
df.columns = range(df.shape[1]) # Delete headers
print(df.to_json(orient='index', indent=2))
型
但我得到了这个输出:
{
"day":{
"0":"2021-09-30"
},
"value1":{
"0":"730716000"
},
"value2":{
"0":"974689000"
},
"value3":{
"0":"375689000"
},
"value4":{
"0":"369077000"
}
}
型
额外的疑问:是否有可能只将列数据的值1、2、3和4解析为int?
6条答案
按热度按时间6rqinv9w1#
第一种方法是在使用
to_json
之前先squeeze
你的框架字符串
注意:
squeeze
只在这里起作用,因为您有一个单列的DataFrame
。对于奖金,使用不同的策略
型
s71maibg2#
似乎没有一个
orient
值可以产生您想要的结果。使用
to_dict()
创建一个字典,然后将其修复为您想要的。字符串
try/except
将在可能的情况下将值转换为整数。q0qdq0h23#
您可以选择列“data”并使用
to_json
和默认值(orient='index'
):字符串
输出量:
型
对于额外的问题,你可以使用
to_dict
+ dict理解:型
输出量:
型
gywdnpxw4#
字符串
动态方式,没有幻数或静态字符串
型
//输出
型
kcugc4gi5#
您可以将
to_dict
与orient = records
一起使用:字符串
7vux5j2d6#
上面的方法在Python 3.11.1 / Pandas 1.5.2中不适用。
一个不雅的解决方案:
字符串