我有这个json文件:
{
"spain" : "spanish.",
"usa" : "english",
"france" : "french",
"italy" : "italian",
...
}
有没有一种快速的方法来转换下面的json文件?
[
{ "country": "spain", "language": "spanish." }
{ "country": "usa", "language": "english." }
{ "country": "france", "language": "french." }
{ "country": "italy", "language": "italian." }
...
}
答案 0 :(得分:3)
<强>的Javascript 强>
使用函数map
。
var countries = { "spain" : "spanish", "usa" : "english", "france" : "french", "italy" : "italian" }
result = Object.entries(countries).map(([c, l]) => ({country: c, language: l}));
console.log(result);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
答案 1 :(得分:2)
在Python中使用列表解析:
import json
with open("test.json", 'r') as f:
test = json.load(f)
json.dumps([{"country": key, "language": test[key]} for key in test.keys()])
答案 2 :(得分:2)
JS:迭代输入对象的键,将每个键分配给输出对象的国家字段,并将相应的值分配给其语言字段。
var input = {"spain":"spanish"};
var output = [];
Object.keys(input).forEach((key, ind) =>
{
output.push({country: key, language:input[key]});
});
console.log(output);
&#13;
答案 3 :(得分:1)
暂时忘掉JSON部分。这里的难点在于将每个'spain': 'spanish'
键值对转换为单独的词组,对吗?
首先,请考虑一下:
for country, language in d.items():
这为您提供了一个循环,每次循环时,您都会获得其中一个键值对,例如country = 'spain'
和language = 'spanish'
。因此,您所要做的就是创建所需格式的字典,并将其附加到某些结果中。
使用该工具将硬盘编码转换为源代码并最后打印出列表。
完成并调试后,只需json.loads
而不是硬编码,而json.dumps
代替print
。或者,如果您希望加载和保存文件而不是将stdin过滤到stdout,open
文件名,然后在生成的文件中使用json.load
和json.dump
。
如果您遇到任何这些问题,您将在StackOverflow上提出一个很好的具体问题。
答案 4 :(得分:0)
In[2]: import json
...:
...: result = []
...: with open('hmm.json', 'r') as f:
...: json_dict = json.load(f)
...: for country, language in json_dict.items():
...: result.append({
...: 'country': country,
...: 'language': language
...: })
...:
In[3]: result
Out[3]:
[{'country': 'spain', 'language': 'spanish.'},
{'country': 'usa', 'language': 'english'},
{'country': 'france', 'language': 'french'},
{'country': 'italy', 'language': 'italian'}]
答案 5 :(得分:0)
试试这个:
var arr = [];
var keys = Object.keys(myobj);
for(var i in keys){
var key = keys[i];
if(key){
arr.push({"country":key,"language":myobj[key]});
}
}