我做了一本字典:
{
"PerezHilton": {
"name": "Perez Hilton",
"following": [
"tomCruise",
"katieH",
"NicoleKidman"
],
"location": "Hollywood, California",
"web": "http://www.PerezH...",
"bio": [
"Perez Hilton is the creator and writer of one of the most famous websites",
"in the world. And he also loves music - a lot!"
]
},
"tomCruise": {
"name": "Tom Cruise",
"following": [
"katieH",
"NicoleKidman"
],
"location": "Los Angeles, CA",
"web": "http://www.tomcruise.com",
"bio": [
"Official TomCruise.com crew tweets. We love you guys!",
"Visit us at Facebook!"
]
}
}
我希望它返回一个字符串,所以我添加了str()。 但我不知道如何像线条一样打破它。 我需要的是:
----------
PerezHilton
name: Perez Hilton
location: Hollywood, California
website: http://www.PerezH...
bio:
Perez Hilton is the creator and writer of one of the most famous websites
in the world. And he also loves music - a lot!
following: ['tomCruise', 'katieH', 'NicoleKidman']
----------
tomCruise
name: Tom Cruise
location: Los Angeles, CA
website: http://www.tomcruise.com
bio:
Official TomCruise.com crew tweets. We love you guys!
Visit us at Facebook!
following: ['katieH', 'NicoleKidman']
----------
我应该将其更改为字符串,然后打破它吗?或者将它们从字典中删除并将其作为字符串? 顺便说一下,我使用了python 3
答案 0 :(得分:2)
试试这个:
_dict = {
"PerezHilton": {
"name": "Perez Hilton",
"following": [
"tomCruise",
"katieH",
"NicoleKidman"
],
"location": "Hollywood, California",
"web": "http://www.PerezH...",
"bio": [
"Perez Hilton is the creator and writer of one of the most famous websites",
"in the world. And he also loves music - a lot!"
]
},
"tomCruise": {
"name": "Tom Cruise",
"following": [
"katieH",
"NicoleKidman"
],
"location": "Los Angeles, CA",
"web": "http://www.tomcruise.com",
"bio": [
"Official TomCruise.com crew tweets. We love you guys!",
"Visit us at Facebook!"
]
}
}
def str_generator(key, value):
if isinstance(value, str):
return key +': ' + value
elif key == 'bio':
return key + ':\n' + '\n'.join(value)
else:
return key + ': ' + str(value)
a = ""
for key, value in _dict.items():
a += ('----------\n' + key + '\n')
for _key, _value in value.items():
a += (''.join(str_generator(_key, _value)) + '\n')
print(a)
输出:
----------
tomCruise
location: Los Angeles, CA
following: ['katieH', 'NicoleKidman']
name: Tom Cruise
bio:
Official TomCruise.com crew tweets. We love you guys!
Visit us at Facebook!
web: http://www.tomcruise.com
----------
PerezHilton
location: Hollywood, California
following: ['tomCruise', 'katieH', 'NicoleKidman']
name: Perez Hilton
bio:
Perez Hilton is the creator and writer of one of the most famous websites
in the world. And he also loves music - a lot!
web: http://www.PerezH...