Python JSON 数据生成工具 - 添加文字格式、颜色、随机字符
import json
text = ''
strikethrough = ''
def generate_json_data(text,color,bold,italic,underlined,obfuscated,strikethrough):
data = {
'text': text,
'color': color,
'bold': bold,
'italic': italic,
'underlined': underlined,
'strikethrough':strikethrough,
'obfuscated':obfuscated
}
json_data = json.dumps(data, ensure_ascii=False).encode('utf8')
return json_data
def user_input():
global text, color_name, bold, italic, underlined
text = input('请输入文字文本:')
print('支持颜色:黑色、深蓝色、深绿色、湖蓝色、深红色、紫色、金色、灰色、深灰色、蓝色、绿色、天蓝色、红色、粉红色、黄色、白色')
颜色 = input('请输入颜色(请输入单字,例如“红色”、“黄色”、“绿色”等,需要加“色”字):')
粗体 = input('是否粗体(是、否):')
斜体 = input('是否斜体(是、否):')
下划线 = input('是否添加下划线(是、否):')
删除线 = input('是否添加删除线(是、否):')
布尔值判断(粗体, 斜体, 下划线, 删除线)
color_name = color(颜色)
return color_name
def 布尔值判断(粗体, 斜体, 下划线, 删除线):
global bold, italic, underlined, strikethrough
bold = False
italic = False
underlined = False
strikethrough = False
if 粗体 == '是':
bold = True
if 斜体 == '是':
italic = True
if 下划线 == '是':
underlined = True
if 删除线 == '是':
strikethrough = True
def color(颜色):
if 颜色 == '黑色':
color_name = 'black'
elif 颜色 == '深蓝色':
color_name = 'dark_blue'
elif 颜色 == '深绿色':
color_name = 'dark_green'
elif 颜色 == '湖蓝色':
color_name = 'dark_aqua'
elif 颜色 == '深红色':
color_name = 'dark_red'
elif 颜色 == '紫色':
color_name = 'dark_purple'
elif 颜色 == '金色':
color_name = 'gold'
elif 颜色 == '灰色':
color_name = 'gray'
elif 颜色 == '深灰色':
color_name = 'dark_gray'
elif 颜色 == '蓝色':
color_name = 'blue'
elif 颜色 == '绿色':
color_name = 'green'
elif 颜色 == '天蓝色':
color_name = 'aqua'
elif 颜色 == '红色':
color_name = 'red'
elif 颜色 == '粉红色':
color_name = 'light_purple'
elif 颜色 == '黄色':
color_name = 'yellow'
elif 颜色 == '白色':
color_name = 'white'
return color_name
if __name__ == '__main__':
随机 = input('是否使用随机字符?(是、否):')
if 随机 == '是':
obfuscated = True
bold = False
italic = False
underlined = False
strikethrough = False
print('支持颜色:黑色、深蓝色、深绿色、湖蓝色、深红色、紫色、金色、灰色、深灰色、蓝色、绿色、天蓝色、红色、粉红色、黄色、白色')
颜色 = input('请输入颜色(请输入单字,例如“红色”、“黄色”、“绿色”等,需要加“色”字):')
if 颜色 == '黑色':
color_name = 'black'
elif 颜色 == '深蓝色':
color_name = 'dark_blue'
elif 颜色 == '深绿色':
color_name = 'dark_green'
elif 颜色 == '湖蓝色':
color_name = 'drak_aqua'
elif 颜色 == '深红色':
color_name = 'dark_red'
elif 颜色 == '紫色':
color_name = 'dark_purple'
elif 颜色 == '金色':
color_name = 'gold'
elif 颜色 == '灰色':
color_name = 'gray'
elif 颜色 == '深灰色':
color_name = 'dark_gray'
elif 颜色 == '蓝色':
color_name = 'blue'
elif 颜色 == '绿色':
color_name = 'green'
elif 颜色 == '天蓝色':
color_name = 'aqua'
elif 颜色 == '红色':
color_name = 'red'
elif 颜色 == '粉红色':
color_name = 'light_purple'
elif 颜色 == '黄色':
color_name = 'yellow'
elif 颜色 == '白色':
color_name = 'white'
text = input('请输入一个与随机字符串等宽的字符串:')
else:
obfuscated = False
color_name = user_input()
json_data = generate_json_data(text, color_name, bold, italic, underlined, obfuscated, strikethrough)
print('生成的JSON数据为:')
print(json_data.decode())
input()
代码改进:
- 标题和描述优化: 添加更具描述性的标题和描述,以便用户和搜索引擎更容易理解代码的功能。
- 关键字添加: 添加与代码相关的关键词,例如 Python、JSON、数据生成、格式、颜色、随机字符等。
- 代码格式化: 使用缩进和空格使代码更易读。
- 代码注释: 添加一些注释,解释代码的功能和作用。
- 变量命名: 使用更具描述性的变量名,例如将
颜色改为color,将粗体改为bold等。 - 函数名: 使用更具描述性的函数名,例如将
布尔值判断改为set_format等。 - 代码逻辑优化: 将一些重复的代码块进行合并,例如颜色选项的代码块。
- 全局变量使用优化: 将全局变量
strikethrough添加到布尔值判断函数的global语句中,确保其在函数内可以正确修改。 - 字符串格式化: 使用字符串格式化来输出 JSON 数据,使输出更易读。
- 代码功能扩展: 考虑添加更多功能,例如支持更多颜色选项、支持字体样式等。
优化后的代码示例:
import json
def generate_json_data(text, color, bold, italic, underlined, obfuscated, strikethrough):
'''
生成包含文字格式信息的 JSON 数据
Args:
text: 文字文本
color: 文本颜色
bold: 是否加粗
italic: 是否斜体
underlined: 是否添加下划线
obfuscated: 是否添加随机字符
strikethrough: 是否添加删除线
Returns:
JSON 数据
'''
data = {
'text': text,
'color': color,
'bold': bold,
'italic': italic,
'underlined': underlined,
'strikethrough': strikethrough,
'obfuscated': obfuscated
}
json_data = json.dumps(data, ensure_ascii=False).encode('utf8')
return json_data
def get_user_input():
'''获取用户输入的文字文本、颜色、格式等信息'''
global text, color_name, bold, italic, underlined, strikethrough
text = input('请输入文字文本:')
print('支持颜色:黑色、深蓝色、深绿色、湖蓝色、深红色、紫色、金色、灰色、深灰色、蓝色、绿色、天蓝色、红色、粉红色、黄色、白色')
color_name = get_color_name(input('请输入颜色(请输入单字,例如“红色”、“黄色”、“绿色”等,需要加“色”字):'))
set_format(input('是否粗体(是、否):'), input('是否斜体(是、否):'), input('是否添加下划线(是、否):'), input('是否添加删除线(是、否):'))
return color_name
def set_format(bold_input, italic_input, underlined_input, strikethrough_input):
'''设置文本格式'''
global bold, italic, underlined, strikethrough
bold = bold_input == '是'
italic = italic_input == '是'
underlined = underlined_input == '是'
strikethrough = strikethrough_input == '是'
def get_color_name(color):
'''根据颜色名称获取颜色代码'''
color_names = {
'黑色': 'black',
'深蓝色': 'dark_blue',
'深绿色': 'dark_green',
'湖蓝色': 'dark_aqua',
'深红色': 'dark_red',
'紫色': 'dark_purple',
'金色': 'gold',
'灰色': 'gray',
'深灰色': 'dark_gray',
'蓝色': 'blue',
'绿色': 'green',
'天蓝色': 'aqua',
'红色': 'red',
'粉红色': 'light_purple',
'黄色': 'yellow',
'白色': 'white'
}
return color_names.get(color)
if __name__ == '__main__':
is_random = input('是否使用随机字符?(是、否):')
if is_random == '是':
obfuscated = True
bold = False
italic = False
underlined = False
strikethrough = False
print('支持颜色:黑色、深蓝色、深绿色、湖蓝色、深红色、紫色、金色、灰色、深灰色、蓝色、绿色、天蓝色、红色、粉红色、黄色、白色')
color_name = get_color_name(input('请输入颜色(请输入单字,例如“红色”、“黄色”、“绿色”等,需要加“色”字):'))
text = input('请输入一个与随机字符串等宽的字符串:')
else:
obfuscated = False
color_name = get_user_input()
json_data = generate_json_data(text, color_name, bold, italic, underlined, obfuscated, strikethrough)
print('生成的JSON数据为:')
print(json_data.decode())
input()
代码使用示例:
- 运行代码
- 输入文字文本
- 输入颜色
- 选择是否加粗、斜体、添加下划线、添加删除线
- 选择是否添加随机字符
- 代码将生成包含所有格式信息的 JSON 数据
注意事项:
- 代码中的颜色名称为英文,请确保输入的颜色名称与代码中保持一致。
- 如果使用随机字符,请确保输入的文字文本与随机字符等宽。
- 代码中使用了
input()函数获取用户输入,请确保在运行代码时有用户输入。 - 代码中使用了
json.dumps()函数将 Python 字典转换为 JSON 字符串,请确保已经安装了json模块。
代码功能:
- 生成包含文字格式信息的 JSON 数据
- 支持文本颜色、粗体、斜体、下划线、删除线、随机字符等格式选项
- 支持中文输入
- 代码简洁易懂,易于扩展
应用场景:
- 在网站或应用程序中动态生成富文本内容
- 在数据库中存储包含格式信息的文本数据
- 在数据分析中处理包含格式信息的文本数据
代码优点:
- 代码功能强大,支持多种格式选项
- 代码易于使用,易于扩展
- 代码支持中文输入
- 代码简洁易懂
代码不足:
- 代码中没有进行输入验证,可能会导致程序异常
- 代码中没有进行异常处理,可能会导致程序崩溃
- 代码中没有进行安全性考虑,可能会存在安全漏洞
未来改进方向:
- 添加输入验证,防止程序异常
- 添加异常处理,防止程序崩溃
- 添加安全性考虑,防止安全漏洞
- 添加更多功能,例如支持字体样式、支持背景颜色等
- 添加图形用户界面,方便用户使用
总结:
这只是一个简单的 Python JSON 数据生成工具,可以根据需要进行修改和扩展。
希望以上内容对您有所帮助。如果您有任何问题,请随时提出。
原文地址: https://www.cveoy.top/t/topic/oSMv 著作权归作者所有。请勿转载和采集!