新增了量表导入器和一个量表

This commit is contained in:
mxr612 2025-03-04 20:27:38 +08:00
parent 97a3b7b7bf
commit d74e30f305
4 changed files with 854 additions and 0 deletions

374
scales/CBF-PI-B.json Normal file
View File

@ -0,0 +1,374 @@
{
"title": "中国大五人格问卷(简式版)",
"description": "",
"instructions": "下面是一些描述人们性格特点的句子请根据每个句子与您性格相符程度选择相应的数字。1-5分别代表完全不符合、大部分不符合、有点不符合、大部分符合、完全符合。",
"questions": [
{
"id": "1",
"subscale": "神经质",
"text": "我常感到害怕",
"range": [
1,
5
]
},
{
"id": "2",
"subscale": "严谨性",
"text": "一旦确定了目标,我会坚持努力地实现它",
"range": [
1,
5
]
},
{
"id": "3",
"subscale": "宜人性",
"text": "我觉得大部分人基本上是心怀善意的",
"range": [
1,
5
]
},
{
"id": "4",
"subscale": "开放性",
"text": "我头脑中经常充满生动的画面",
"range": [
1,
5
]
},
{
"id": "5",
"subscale": "外向性",
"text": "我对人多的聚会感到乏味",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "6",
"subscale": "神经质",
"text": "有时我觉得自己一无是处",
"range": [
1,
5
]
},
{
"id": "7",
"subscale": "严谨性",
"text": "我常常是仔细考虑之后才做出决定",
"range": [
1,
5
]
},
{
"id": "8",
"subscale": "宜人性",
"text": "我不太关心别人是否受到不公正的待遇",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "9",
"subscale": "开放性",
"text": "我是个勇于冒险的人",
"range": [
1,
5
]
},
{
"id": "10",
"subscale": "外向性",
"text": "在热闹的聚会上,我常常表现主动并尽情玩耍",
"range": [
1,
5
]
},
{
"id": "11",
"subscale": "神经质",
"text": "别人一句漫不经心的话,我常会联系在自己身上",
"range": [
1,
5
]
},
{
"id": "12",
"subscale": "严谨性",
"text": "别人认为我是个慎重的人",
"range": [
1,
5
]
},
{
"id": "13",
"subscale": "宜人性",
"text": "我时常觉得别人的痛苦与我无关",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "14",
"subscale": "开放性",
"text": "我喜欢冒险",
"range": [
1,
5
]
},
{
"id": "15",
"subscale": "外向性",
"text": "我尽量避免参加人多的聚会和嘈杂的环境",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "16",
"subscale": "神经质",
"text": "在面对压力时,我有种快要崩溃的感觉",
"range": [
1,
5
]
},
{
"id": "17",
"subscale": "严谨性",
"text": "我喜欢一开头就把事情计划好",
"range": [
1,
5
]
},
{
"id": "18",
"subscale": "宜人性",
"text": "我是那种只照顾好自己,不替别人担忧的人",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "19",
"subscale": "开放性",
"text": "我对许多事情有着很强的好奇心",
"range": [
1,
5
]
},
{
"id": "20",
"subscale": "外向性",
"text": "有我在的场合一般不会冷场",
"range": [
1,
5
]
},
{
"id": "21",
"subscale": "神经质",
"text": "我常担忧一些无关紧要的事情",
"range": [
1,
5
]
},
{
"id": "22",
"subscale": "严谨性",
"text": "我工作或学习很勤奋",
"range": [
1,
5
]
},
{
"id": "23",
"subscale": "宜人性",
"text": "虽然社会上有些骗子,但我觉得大部分人还是可信的",
"range": [
1,
5
]
},
{
"id": "24",
"subscale": "开放性",
"text": "我身上具有别人没有的冒险精神",
"range": [
1,
5
]
},
{
"id": "25",
"subscale": "外向性",
"text": "在一个团体中,我希望处于领导地位",
"range": [
1,
5
]
},
{
"id": "26",
"subscale": "神经质",
"text": "我常常感到内心不踏实",
"range": [
1,
5
]
},
{
"id": "27",
"subscale": "严谨性",
"text": "我是个倾尽全力做事的人",
"range": [
1,
5
]
},
{
"id": "28",
"subscale": "宜人性",
"text": "当别人想我诉说不幸的时,我常感到难过",
"range": [
1,
5
]
},
{
"id": "29",
"subscale": "开放性",
"text": "我渴望学习一些新东西,即使它们与我的日常生活无关",
"range": [
1,
5
]
},
{
"id": "30",
"subscale": "外向性",
"text": "别人多认为我是一个热情和友好的人",
"range": [
1,
5
]
},
{
"id": "31",
"subscale": "神经质",
"text": "我常担心有什么不好的事情发生",
"range": [
1,
5
]
},
{
"id": "32",
"subscale": "严谨性",
"text": "在工作上,我常只求能应付过去便可",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "33",
"subscale": "宜人性",
"text": "尽管人类社会存在着一些阴暗的东西(如战争、罪恶、欺诈),我仍相信人性总的来说是善良的",
"range": [
1,
5
]
},
{
"id": "34",
"subscale": "开放性",
"text": "我的想象力相当丰富",
"range": [
1,
5
]
},
{
"id": "35",
"subscale": "外向性",
"text": "我喜欢参加社交与娱乐聚会",
"range": [
1,
5
]
},
{
"id": "36",
"subscale": "神经质",
"text": "我很少感到忧郁或沮丧",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "37",
"subscale": "严谨性",
"text": "做事讲究逻辑和条理是我的一个特点",
"range": [
1,
5
]
},
{
"id": "38",
"subscale": "宜人性",
"text": "我常为那些遭遇不幸的人感到难过",
"range": [
1,
5
]
},
{
"id": "39",
"subscale": "开放性",
"text": "我很愿意也很容易接受那些新事物、新观点、新想法",
"range": [
1,
5
]
},
{
"id": "40",
"subscale": "外向性",
"text": "我希望成为领导者而不是被领导者",
"range": [
1,
5
]
}
]
}

46
txt2json/input.txt Normal file
View File

@ -0,0 +1,46 @@
我常感到害怕
一旦确定了目标,我会坚持努力地实现它
我觉得大部分人基本上是心怀善意的
我头脑中经常充满生动的画面
-我对人多的聚会感到乏味
有时我觉得自己一无是处
我常常是仔细考虑之后才做出决定
-我不太关心别人是否受到不公正的待遇
我是个勇于冒险的人
在热闹的聚会上,我常常表现主动并尽情玩耍
别人一句漫不经心的话,我常会联系在自己身上
别人认为我是个慎重的人
-我时常觉得别人的痛苦与我无关
我喜欢冒险
-我尽量避免参加人多的聚会和嘈杂的环境
在面对压力时,我有种快要崩溃的感觉
我喜欢一开头就把事情计划好
-我是那种只照顾好自己,不替别人担忧的人
我对许多事情有着很强的好奇心
有我在的场合一般不会冷场
我常担忧一些无关紧要的事情
我工作或学习很勤奋
虽然社会上有些骗子,但我觉得大部分人还是可信的
我身上具有别人没有的冒险精神
在一个团体中,我希望处于领导地位
我常常感到内心不踏实
我是个倾尽全力做事的人
当别人想我诉说不幸的时,我常感到难过
我渴望学习一些新东西,即使它们与我的日常生活无关
别人多认为我是一个热情和友好的人
我常担心有什么不好的事情发生
-在工作上,我常只求能应付过去便可
尽管人类社会存在着一些阴暗的东西(如战争、罪恶、欺诈),我仍相信人性总的来说是善良的
我的想象力相当丰富
我喜欢参加社交与娱乐聚会
-我很少感到忧郁或沮丧
做事讲究逻辑和条理是我的一个特点
我常为那些遭遇不幸的人感到难过
我很愿意也很容易接受那些新事物、新观点、新想法
我希望成为领导者而不是被领导者
--
神经质=1,6,11,16,21,26,31,36
严谨性=2,7,12,17,22,27,32,37
宜人性=3,8,13,18,23,28,33,38
开放性=4,9,14,19,24,29,34,39
外向性=5,10,15,20,25,30,35,40

374
txt2json/output.json Normal file
View File

@ -0,0 +1,374 @@
{
"title": "",
"description": "",
"instructions": "",
"questions": [
{
"id": "1",
"subscale": "神经质",
"text": "我常感到害怕",
"range": [
1,
5
]
},
{
"id": "2",
"subscale": "严谨性",
"text": "一旦确定了目标,我会坚持努力地实现它",
"range": [
1,
5
]
},
{
"id": "3",
"subscale": "宜人性",
"text": "我觉得大部分人基本上是心怀善意的",
"range": [
1,
5
]
},
{
"id": "4",
"subscale": "开放性",
"text": "我头脑中经常充满生动的画面",
"range": [
1,
5
]
},
{
"id": "5",
"subscale": "外向性",
"text": "我对人多的聚会感到乏味",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "6",
"subscale": "神经质",
"text": "有时我觉得自己一无是处",
"range": [
1,
5
]
},
{
"id": "7",
"subscale": "严谨性",
"text": "我常常是仔细考虑之后才做出决定",
"range": [
1,
5
]
},
{
"id": "8",
"subscale": "宜人性",
"text": "我不太关心别人是否受到不公正的待遇",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "9",
"subscale": "开放性",
"text": "我是个勇于冒险的人",
"range": [
1,
5
]
},
{
"id": "10",
"subscale": "外向性",
"text": "在热闹的聚会上,我常常表现主动并尽情玩耍",
"range": [
1,
5
]
},
{
"id": "11",
"subscale": "神经质",
"text": "别人一句漫不经心的话,我常会联系在自己身上",
"range": [
1,
5
]
},
{
"id": "12",
"subscale": "严谨性",
"text": "别人认为我是个慎重的人",
"range": [
1,
5
]
},
{
"id": "13",
"subscale": "宜人性",
"text": "我时常觉得别人的痛苦与我无关",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "14",
"subscale": "开放性",
"text": "我喜欢冒险",
"range": [
1,
5
]
},
{
"id": "15",
"subscale": "外向性",
"text": "我尽量避免参加人多的聚会和嘈杂的环境",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "16",
"subscale": "神经质",
"text": "在面对压力时,我有种快要崩溃的感觉",
"range": [
1,
5
]
},
{
"id": "17",
"subscale": "严谨性",
"text": "我喜欢一开头就把事情计划好",
"range": [
1,
5
]
},
{
"id": "18",
"subscale": "宜人性",
"text": "我是那种只照顾好自己,不替别人担忧的人",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "19",
"subscale": "开放性",
"text": "我对许多事情有着很强的好奇心",
"range": [
1,
5
]
},
{
"id": "20",
"subscale": "外向性",
"text": "有我在的场合一般不会冷场",
"range": [
1,
5
]
},
{
"id": "21",
"subscale": "神经质",
"text": "我常担忧一些无关紧要的事情",
"range": [
1,
5
]
},
{
"id": "22",
"subscale": "严谨性",
"text": "我工作或学习很勤奋",
"range": [
1,
5
]
},
{
"id": "23",
"subscale": "宜人性",
"text": "虽然社会上有些骗子,但我觉得大部分人还是可信的",
"range": [
1,
5
]
},
{
"id": "24",
"subscale": "开放性",
"text": "我身上具有别人没有的冒险精神",
"range": [
1,
5
]
},
{
"id": "25",
"subscale": "外向性",
"text": "在一个团体中,我希望处于领导地位",
"range": [
1,
5
]
},
{
"id": "26",
"subscale": "神经质",
"text": "我常常感到内心不踏实",
"range": [
1,
5
]
},
{
"id": "27",
"subscale": "严谨性",
"text": "我是个倾尽全力做事的人",
"range": [
1,
5
]
},
{
"id": "28",
"subscale": "宜人性",
"text": "当别人想我诉说不幸的时,我常感到难过",
"range": [
1,
5
]
},
{
"id": "29",
"subscale": "开放性",
"text": "我渴望学习一些新东西,即使它们与我的日常生活无关",
"range": [
1,
5
]
},
{
"id": "30",
"subscale": "外向性",
"text": "别人多认为我是一个热情和友好的人",
"range": [
1,
5
]
},
{
"id": "31",
"subscale": "神经质",
"text": "我常担心有什么不好的事情发生",
"range": [
1,
5
]
},
{
"id": "32",
"subscale": "严谨性",
"text": "在工作上,我常只求能应付过去便可",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "33",
"subscale": "宜人性",
"text": "尽管人类社会存在着一些阴暗的东西(如战争、罪恶、欺诈),我仍相信人性总的来说是善良的",
"range": [
1,
5
]
},
{
"id": "34",
"subscale": "开放性",
"text": "我的想象力相当丰富",
"range": [
1,
5
]
},
{
"id": "35",
"subscale": "外向性",
"text": "我喜欢参加社交与娱乐聚会",
"range": [
1,
5
]
},
{
"id": "36",
"subscale": "神经质",
"text": "我很少感到忧郁或沮丧",
"range": [
1,
5
],
"reverse": 1
},
{
"id": "37",
"subscale": "严谨性",
"text": "做事讲究逻辑和条理是我的一个特点",
"range": [
1,
5
]
},
{
"id": "38",
"subscale": "宜人性",
"text": "我常为那些遭遇不幸的人感到难过",
"range": [
1,
5
]
},
{
"id": "39",
"subscale": "开放性",
"text": "我很愿意也很容易接受那些新事物、新观点、新想法",
"range": [
1,
5
]
},
{
"id": "40",
"subscale": "外向性",
"text": "我希望成为领导者而不是被领导者",
"range": [
1,
5
]
}
]
}

60
txt2json/txt2json.py Normal file
View File

@ -0,0 +1,60 @@
import json
def txt_to_json(input_file, output_file):
# 获取用户输入的range范围
range_input = input("请输入评分范围(格式:最小值,最大值例如1,5: ")
range_values = list(map(int, range_input.split(',')))
# 读取并分割问题和指令
with open(input_file, 'r', encoding='utf-8') as f:
all_lines = [line.strip() for line in f if line.strip()]
# 分割问题定义和subscale指令
if '--' in all_lines:
split_index = all_lines.index('--')
question_lines = all_lines[:split_index]
subscale_lines = all_lines[split_index+1:]
else:
question_lines = all_lines
subscale_lines = []
# 解析subscale指令
subscale_map = {}
for line in subscale_lines:
if '=' in line:
name, ids = line.split('=', 1)
for q_id in ids.split(','):
subscale_map[q_id.strip()] = name.strip()
questions = []
for idx, line in enumerate(question_lines, 1):
# 处理前导"-"标记
reverse = 1 if line.startswith('-') else None
text = line[1:] if reverse else line
question = {
"id": str(idx),
"subscale": subscale_map.get(str(idx), ""), # 新增subscale映射
"text": text,
"range": range_values.copy()
}
if reverse:
question["reverse"] = 1
questions.append(question)
# 构建完整JSON结构
result = {
"title": "",
"description": "",
"instructions": "",
"questions": questions
}
# 写入输出文件
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(result, f, ensure_ascii=False, indent=4)
if __name__ == "__main__":
txt_to_json("input.txt", "output.json")