python - Python:无法将 json 格式(dict)值放入列表中
问题描述
我试图从 json 输入中提取一组日期值。当我完成提取时F_Date
,它是正确的。
2020-05-20T00:00:00
2020-05-18T00:00:00
2020-05-15T00:00:00
2020-05-13T00:00:00
我设置了一个列表来包含这些值,所以我想使用列表的索引List[0]
来获取列表中的第一个值或列表中的其他值以用于进一步的目的。然而,它失败了。它给了我一列第一个字符。如果我尝试List[1]
,ofc 它给了我一列0
而不是2020-05-18T00:00:00
,这正是我想要的。知道我的代码有什么问题吗?我对现在是什么类型感到困惑F_Date
,它不是列表吗?
提前致谢。
F_Date = []
for cell in json["Cells"]:
if cell["ColumnName"] == "T":
if cell["RowIndex"] + 1 > 9:
F_Date = cell["DisplayValue"]
print(F_Date[0])
output:
2
2
2
2
杰森:
json = {
"SheetName": "price",
"SheetIndex": 4,
"Cells": [
{
"ColumnName": "T",
"RowName": "10",
"Address": "T10",
"ColumnIndex": 19,
"RowIndex": 9,
"Value": "2020-05-20T00:00:00",
"DisplayValue": "2020-05-20T00:00:00",
"ValueType": "Date"
},
{
"ColumnName": "U",
"RowName": "10",
"Address": "U10",
"ColumnIndex": 20,
"RowIndex": 9,
"Value": 2.75,
"DisplayValue": 2.75,
"ValueType": "Numeric"
},
{
"ColumnName": "V",
"RowName": "10",
"Address": "V10",
"ColumnIndex": 21,
"RowIndex": 9,
"Value": 2.15,
"DisplayValue": 2.15,
"ValueType": "Numeric"
},
{
"ColumnName": "T",
"RowName": "11",
"Address": "T11",
"ColumnIndex": 19,
"RowIndex": 10,
"Value": "2020-05-18T00:00:00",
"DisplayValue": "2020-05-18T00:00:00",
"ValueType": "Date"
},
{
"ColumnName": "U",
"RowName": "11",
"Address": "U11",
"ColumnIndex": 20,
"RowIndex": 10,
"Value": 2.75,
"DisplayValue": 2.75,
"ValueType": "Numeric"
},
{
"ColumnName": "V",
"RowName": "11",
"Address": "V11",
"ColumnIndex": 21,
"RowIndex": 10,
"Value": 2.15,
"DisplayValue": 2.15,
"ValueType": "Numeric"
},
{
"ColumnName": "T",
"RowName": "12",
"Address": "T12",
"ColumnIndex": 19,
"RowIndex": 11,
"Value": "2020-05-15T00:00:00",
"DisplayValue": "2020-05-15T00:00:00",
"ValueType": "Date"
},
{
"ColumnName": "U",
"RowName": "12",
"Address": "U12",
"ColumnIndex": 20,
"RowIndex": 11,
"Value": 2.75,
"DisplayValue": 2.75,
"ValueType": "Numeric"
},
{
"ColumnName": "V",
"RowName": "12",
"Address": "V12",
"ColumnIndex": 21,
"RowIndex": 11,
"Value": 2.15,
"DisplayValue": 2.15,
"ValueType": "Numeric"
},
{
"ColumnName": "T",
"RowName": "13",
"Address": "T13",
"ColumnIndex": 19,
"RowIndex": 12,
"Value": "2020-05-13T00:00:00",
"DisplayValue": "2020-05-13T00:00:00",
"ValueType": "Date"
}
]}
解决方案
您需要做的就是打印 F_Date 而不是 F_Date[0] ,它只将第一个字符打印为字符串,可以解释为字符列表,并且您正在打印索引 0。
print(F_Date)
如果您对 F_Date 是什么感到困惑,则 F_Date 是您的日期字符串,因为它是您获得的字典中键的值。
F_Date = []
for cell in json["Cells"]:
if cell["ColumnName"] == "T":
if cell["RowIndex"] + 1 > 9:
F_Date = cell["DisplayValue"] # Here you set F_Date to the value
print(F_Date[0])
我想你要做的是这个
F_Date = []
for cell in json["Cells"]:
if cell["ColumnName"] == "T":
if cell["RowIndex"] + 1 > 9:
F_Date.append(cell["DisplayValue"])
print(cell["DisplayValue"])
推荐阅读
- r - 如何使用 R 中的钻头为集群执行散点图?
- amazon-web-services - 如何使用多个 AWS 服务处理从开发到生产的流程
- javascript - 如何在更改值而不是单击按钮时使函数运行?
- typescript - TypeScript:如何修复 TS7016:找不到类型定义 404
- java - 如何有效地对抽象列表进行嵌套迭代?
- c# - 出现无法加载 Newtonsoft.Json.Dll 的错误,因为我的 Web API 项目已经包含旧的 Newtonsoft json dll 的引用
- http - 带有 JSON 数组的 Flutter POST
- javascript - 如何在 Grid.MVC 中调用 javascript 函数
- visual-studio - 为什么 NuGet 抱怨 System.ValueTuple (4.3.1)?
- amazon-web-services - 微服务,AWS 中的 docker