打印给定格式的字典
Print a dictionary with the given format
这是我的代码。
输出时必须保留文本格式和对字典所做的更改
from pprint import pprint
site = {
'html': {
'head': {
'title': 'Куплю/продам телефон недорого'
},
'body': {
'h2': 'У нас самая низкая цена на iphone',
'div': 'Купить',
'p': 'продать'
}
}
}
def find_key(struct, key, meaning):
if key in struct:
struct[key] = meaning
return site
for sub_struct in struct.values():
if isinstance(sub_struct, dict):
result = find_key(sub_struct, key, meaning)
if result:
return site
number_sites = int(input('Сколько сайтов: '))
for _ in range(number_sites):
product_name = input('Введите название продукта для нового сайта: ')
key = {'title': f'Куплю/продам {product_name} недорого', 'h2': f'У нас самая низкая цена на {product_name}'}
for i in key:
find_key(site, i, key[i])
print(f'Сайт для {product_name}:')
pprint(site)
不显示完整词典
这应该有效
import json
print(json.dumps(site, indent=4, ensure_ascii=False))
可能的解决方案如下:
import json
number_sites = int(input('Сколько сайтов: '))
for _ in range(number_sites):
site = {'html':{
'head':{'title': 'Куплю/продам телефон недорого'},
'body':{'h2': 'У нас самая низкая цена на iphone','div': 'Купить', 'p': 'продать'}}}
product_name = input('Введите название продукта для нового сайта: ')
key = {'title': f'Куплю/продам {product_name} недорого', 'h2': f'У нас самая низкая цена на {product_name}'}
site.get('html', {}).get('body', {})['h2'] = key['h2']
site.get('html', {}).get('head', {})['title'] = key['title']
print(f'\nСайт для {product_name}:')
print('site =')
print(json.dumps(site, indent=4, ensure_ascii=False))
Returns
Сколько сайтов: 1
Введите название продукта для нового сайта: IPHONE
Сайт для IPHONE:
site =
{
"html": {
"head": {
"title": "Куплю/продам IPHONE недорого"
},
"body": {
"h2": "У нас самая низкая цена на IPHONE",
"div": "Купить",
"p": "продать"
}
}
}
#import json
data = json.dumps(site, ensure_ascii=False, indent=4)
print("site = " + data.replace('"', "'"))
原来如此完美
这是我的代码。 输出时必须保留文本格式和对字典所做的更改
from pprint import pprint
site = {
'html': {
'head': {
'title': 'Куплю/продам телефон недорого'
},
'body': {
'h2': 'У нас самая низкая цена на iphone',
'div': 'Купить',
'p': 'продать'
}
}
}
def find_key(struct, key, meaning):
if key in struct:
struct[key] = meaning
return site
for sub_struct in struct.values():
if isinstance(sub_struct, dict):
result = find_key(sub_struct, key, meaning)
if result:
return site
number_sites = int(input('Сколько сайтов: '))
for _ in range(number_sites):
product_name = input('Введите название продукта для нового сайта: ')
key = {'title': f'Куплю/продам {product_name} недорого', 'h2': f'У нас самая низкая цена на {product_name}'}
for i in key:
find_key(site, i, key[i])
print(f'Сайт для {product_name}:')
pprint(site)
不显示完整词典
这应该有效
import json
print(json.dumps(site, indent=4, ensure_ascii=False))
可能的解决方案如下:
import json
number_sites = int(input('Сколько сайтов: '))
for _ in range(number_sites):
site = {'html':{
'head':{'title': 'Куплю/продам телефон недорого'},
'body':{'h2': 'У нас самая низкая цена на iphone','div': 'Купить', 'p': 'продать'}}}
product_name = input('Введите название продукта для нового сайта: ')
key = {'title': f'Куплю/продам {product_name} недорого', 'h2': f'У нас самая низкая цена на {product_name}'}
site.get('html', {}).get('body', {})['h2'] = key['h2']
site.get('html', {}).get('head', {})['title'] = key['title']
print(f'\nСайт для {product_name}:')
print('site =')
print(json.dumps(site, indent=4, ensure_ascii=False))
Returns
Сколько сайтов: 1
Введите название продукта для нового сайта: IPHONE
Сайт для IPHONE:
site =
{
"html": {
"head": {
"title": "Куплю/продам IPHONE недорого"
},
"body": {
"h2": "У нас самая низкая цена на IPHONE",
"div": "Купить",
"p": "продать"
}
}
}
#import json
data = json.dumps(site, ensure_ascii=False, indent=4)
print("site = " + data.replace('"', "'"))
原来如此完美