【发布时间】:2016-11-24 11:55:10
【问题描述】:
import json
body = { u'username': u"aws", u'status': u'Full', u'lname': u'Singh',u'company_id': {u'displayName': u'Root'},u'person_no': u'89',u'fname': u'Aws', u'gender':2, u'userid': u'guest'}
data = json.dumps(body)
json_data = loads(data)
keylist = data.keys()
我已经提取了主键(第 1 层键):primary_keylist 即
[u'username', u'status', u'person_no', u'gender', u'company_id', u'lname', u'fname', u'userid']
现在我想将 ' 附加到与第 1 层键对应的所有值。
我试过了:
json_data[key] = json_data[key] + "'"
如果我使用它来更改单个值,那么它正在工作 但是当我尝试更新所有键(在primary_keylist中)
for key in keylist:
if key in primary_keylist:
json_data[key] = json_data[key] + "'"
else:
pass
然后它不工作。 如何一次更新所有值?
Error: TypeError: unsupported operand type(s) for +: 'dict' and 'str'
【问题讨论】:
-
primary_keylist是什么?另外,请发布您希望结果字典的外观,您有一个嵌套字典,并且还有一个数字,在这些情况下应该发生什么? -
else: pass没用 -
你的代码有没有报错?
-
json_data[key]并不总是一个字符串,因此如果不将其转换为字符串,就无法将其与'连接。 -
@JimFasarakis-Hilliard primary_keylist 是第 1 层密钥的集合。 def check_nested_json(json_data,keylist): count = 0; n_keylist = [] new_keylist = [] primary_keylist = [] 用于 keylist 中的键:count = count +1 for i in range(0,count): try: n_key = json_data[keylist[i]].keys() n_keylist.append (keylist[i]) new_keylist.append(n_key) except AttributeError: primary_keylist.append(keylist[i]) return primary_keylist
标签: python python-2.7 python-3.x dictionary