迭代通过使用Python
问题描述:
JavaScript变量我有一个JavaScript文件Commodity.js
这样的:迭代通过使用Python
commodityInfo = [
["GLASS ITEM", 1.0, 1.0, ],
["HOUSEHOLD GOODS", 3.0, 2.0, ],
["FROZEN PRODUCTS", 1.0, 3.0, ],
["BEDDING", 1.0, 4.0, ],
["PERFUME", 1.0, 5.0, ],
["HARDWARE", 5.0, 6.0, ],
["CURTAIN", 1.0, 7.0, ],
["CLOTHING", 24.0, 8.0, ],
["ELECTRICAL ITEMS", 1.0, 9.0, ],
["PLUMBING MATERIAL", 1.0, 10.0, ],
["FLOWER", 7.0, 11.0, ],
["PROCESSED FOODS.", 1.0, 12.0, ],
["TILES", 1.0, 13.0, ],
["ELECTRICAL", 9.0, 14.0, ],
["PLUMBING", 1.0, 15.0, ]
];
我想通过每一个像玻璃制品,家居用品,冷冻产品的项目进行迭代,并使用它旁边的数一些使用Python的计算。 有人能告诉我如何打开并遍历python中的项目。
感谢你。
答
您可以使用for
循环来实现。
像这样的工作:
for commodity in commodityInfo:
commodity[0] # the first element (e.g: GLASS ITEM)
commodity[1] # the second element (e.g: 1.0)
print(commodity[1] + commodity[2]) #calculate two values
您可以了解更多关于for
循环here
答
下面的代码可能不是最有效的,但它适用于你的情况。
我在这里做的是:将字符串(文件的内容)转换为有效的JSON,然后将JSON字符串加载到Python变量中。
注意:如果您的JS文件的内容已经是有效的JSON,会更容易!
import re
import json
# for the sake of this code, we will assume you can successfully load the content of your JS file
# into a variable called "file_content"
# E.G. with the following code:
#
# with open('Commodity.js', 'r') as f: #open the file
# file_content = f.read()
# since I do not have such a file, I will fill the variable "manually", based on your sample data
file_content = """
commodityInfo = [
["GLASS ITEM", 1.0, 1.0, ],
["HOUSEHOLD GOODS", 3.0, 2.0, ],
["FROZEN PRODUCTS", 1.0, 3.0, ],
["BEDDING", 1.0, 4.0, ],
["PERFUME", 1.0, 5.0, ],
["HARDWARE", 5.0, 6.0, ],
["CURTAIN", 1.0, 7.0, ],
["CLOTHING", 24.0, 8.0, ],
["ELECTRICAL ITEMS", 1.0, 9.0, ],
["PLUMBING MATERIAL", 1.0, 10.0, ],
["FLOWER", 7.0, 11.0, ],
["PROCESSED FOODS.", 1.0, 12.0, ],
["TILES", 1.0, 13.0, ],
["ELECTRICAL", 9.0, 14.0, ],
["PLUMBING", 1.0, 15.0, ]
];
"""
# get rid of leading/trailing line breaks
file_content = file_content.strip()
# get rid of "commodityInfo = " and the ";" and make the array valid JSON
r = re.match(".*=", file_content)
json_str = file_content.replace(r.group(), "").replace(";", "").replace(", ]", "]")
# now we can load the JSON into a Python variable
# in this case, it will be a list of lists, just as the source is an array of array
l = json.loads(json_str)
# now we can do whatever we want with the list, e.g. iterate it
for item in l:
print(item)
OP有一个** JavaScript **文件。 – randomir
@randomir在我将其标记为关闭后添加。我假设OP意味着JSON数据。 –