繁体   English   中英

Python 如何检查字典在列表中有值并更改为字符串类型?

[英]Python how to check the dictonary have value in list and change to string type?

我有下面的字典,其中一些键的值显示为列表。 我需要找到那些是列表类型并需要转换为字符串的值


details=
{
  "dsply_nm": [
    "1981 test test"
  ],
  "eff_dt": [
    "2021-04-21T00:01:00-04:00"
  ],
  
  "exp_dt": [
    "2022-04-21T00:01:00-04:00"
  ],
  "pwr": [
    "14"
  ],
  "is_excl": [
    "true"
  ],
  
  "is_incl": [
    "false"
  ],
  
  "len": [
    "14"
  ],
  "max_spd": [
    "14"
  ],
  "id": "58",
  "type_nm": "single",
  "updt_dttm": "2021-04-21T13:40:11.148-04:00",
  "nbr": "3",
  "typ": "premium",
  "nm": "test"
}

下面的代码似乎没有工作,它没有作为字符串返回

test={}
for k,v in details.items():
    if isinstance(v, list):
        test[k]="".join(str(v))
    test[k]=v
print(test)

预期应该如下

{'dsply_nm':'1981 test test', 
"eff_dt": "2021-04-21T00:01:00-04:00", 
"exp_dt":"2022-04-21T00:01:00-04:00",
"pwr":"14",
"is_excl":"true",
"is_incl": "false",
"len":"14",
"max_spd":"14",
"id":"58",
"updt_dttm":"2021-04-21T13:40:11.148-04:00",
"nbr":"3",
"typ": "premium",
"nm":"test"
}

有人可以帮忙吗?

您的代码几乎是正确的-您忘记了else子句,并且不应在str(v)之前使用join 此代码工作正常:

test={}
for k,v in details.items():
    if isinstance(v, list):
        test[k]="".join(v)
    else:
        test[k]=v
print(test)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM