【发布时间】:2018-05-08 09:47:37
【问题描述】:
我有一个包含如下列表的 JSON 文件:
"locales": {
"de": {
"default": {
"vegetables": [
"apple",
"melon",
"grape",
"pear"
]
}
},
"fr": {
"default": {
"vegetables": [
"apple",
"melon",
"grape",
"pear"
]
}
},
"nl": {
"default": {
"vegetables": [
"apple",
"melon",
"grape",
"pear"
]
}
},
(...)
}
我想根据语言环境(de、fr、nl 等)迭代 locales 广告操作 vegetables。我怎样才能用 python 实现呢?
我尝试了类似的东西
import json
_MY_CUSTOM_ORDER_DE = [
"pear",
"grape",
"apple",
"melon"]
_MY_CUSTOM_ORDER_NL = [
"melon",
"pear",
"apple",
"grape"]
def updateJsonFile():
jsonFile = open('vegetables.json', 'r')
data = json.load(jsonFile)
jsonFile.close()
for item in data["locales"]:
if item == "de":
item["default"]["vegetables"] = _MY_CUSTOM_ORDER_DE
elif item == "nl":
item["default"]["vegetables"] = _MY_CUSTOM_ORDER_NL
else:
## do nothing ##
with open('sortedvegetables.json', 'w') as outfile:
json.dump(data, outfile, indent=4, sort_keys=True)
def main():
updateJsonFile()
if __name__ == '__main__':
main()
不幸的是,这不起作用,但在我执行脚本后,终端现在出现错误。 sortedvegetables.json 看起来和vegetables.json 完全一样
【问题讨论】:
-
你能说得清楚点吗?无法理解您真正在看什么?举几个明确的例子!
-
同时显示什么是 _MY_CUSTOM_ORDER_DE 和 _MY_CUSTOM_ORDER_NL
-
你在哪里打电话
updateJsonFile? -
我编辑并粘贴了我的完整 python 脚本
标签: python json sorting iterator