给出的数据:[british_museum.religion.mesopotamia]
我通过在完全停止的基础上拆分它来分离上面数据中的每个类别。现在我想创建一个显示以下
的JSON对象{ "categories" :
{"category": "british_museum",
"category": "religion",
"category": "mesopotamia"
}
}
现在的问题是所给出的数据可以是任何长度,即给定的数据中可以有不同数量的类别。对于提供的任何数据,获取JSON对象的通用解决方案是什么? 条件是应遵循指定的JSON格式。如果有5个类别,那么应该有5个类别" "类别中的键"键。
答案 0 :(得分:0)
从上述评论中可以看出@Craicerjack为这个问题提出了更好的解决方案。
我刚把它转换成代码。您可以将其保存到MongoDB。
>>> input_string = 'british_museum.religion.mesopotamia'
>>> splitted_values = input_string.split('.')
>>> output={}
>>> output['categories'] = splitted_values
>>> json.dumps(output)
输出:
{
"categories": [
"british_museum",
"religion",
"mesopotamia"
]
}
答案 1 :(得分:0)
词典 不允许重复键 因此您可以拆分文本并将其作为列表附加,也可以使用"category1","category2",.....
等密钥创建json
import json
data= ["british_museum.religion.mesopotamia"
,"british_museum.religion.mesopotamia1"]
json_data=[]
for word in data:
json_data.append({"categories": {"category"+str(i): j for i,j in enumerate(word.split("."))}})
json.dumps(json_data)
<强>结果:强>
[
{
"categories":{
"category1":"religion",
"category0":"british_museum",
"category2":"mesopotamia"
}
},
{
"categories":{
"category1":"religion",
"category0":"british_museum",
"category2":"mesopotamia1"
}
}
]
或者您可以将类别添加为列表
import json
data= ["british_museum.religion.mesopotamia"
,"british_museum.religion.mesopotamia1"]
json_data=[]
for word in data:
json_data.append({"categories":word.split(".")})
json.dumps(json_data)
<强>结果:强>
[
{
"categories":[
"british_museum",
"religion",
"mesopotamia"
]
},
{
"categories":[
"british_museum",
"religion",
"mesopotamia1"
]
}
]