python - 将多个构建的 BOM(零件列表)保存到 Python 中的文件中

标签 python arrays json file

我想我知道一种方法可以做到这一点,但我想看看是否有更好的方法。所以这是我试图读取(然后写回)的一部分的文件

['Part assembly name', <name of assembled part>]
['Parts', <part1>, <part2>, <part3>]
['Quantities', 5, 8, 2]
['Part category, <category type 1>, <category type 2>]

如果我将每一行保存到一个数组中,我可以用 json 编写每一行

myfile = file('partsList.txt', 'w')
for x in (names, ingedients, volumes, category):
    json.dump(x, myfile)
    myfile.write('\n')

我应该能够读回每一行:

with open(fname) as f:
    names.append(f.readlines())
    parts.append(f.readlines())
    quanties.append(f.readlines())
    categories.append(f.readlines())

因此,在从文件中读取所有不同的零件组件后,我应该有四个数组(或者可能是 1 个二维数组)

names = [<name of assembly 1>, <name of assembly 2>, <name of assembly 3>]
parts = [<array of parts for 1>, <array of parts for 2>, <array of parts for 3>]
quantites = [<array of quantites  for 1>, <array of quantites  for 2>, <array of quantites for 3>]
categories= [<array of categoriesfor 1>, <array of categoriesfor 2>, <array of categoriesfor 3>]

有更好/更简单的方法吗?我不想尝试重新发明轮子。谢谢!

最佳答案

使用字典,然后编码和写入一次,读取和解码一次:

with file('partsList.txt', 'w') as myfile:
    data = {'names': names, 'ingredients': ingredients, 'volumes': volumes, 'category': category}
    json.dump(data, myfile)

阅读:

with file('partsList.txt') as myfile:
    data = json.load(myfile)

names = data['names']
# etc.

或者更好的是,首先从字典开始,而不是单独的变量。

关于python - 将多个构建的 BOM(零件列表)保存到 Python 中的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18000670/

相关文章:

android - 在 Android 中解码 JSON base64 数据(来自 PHP 的 base64_encode)?

python - 正则表达式匹配一个特定的单词后跟另一个单词,以及一个边界标识符

python - Keras 模型给出的测试精度为 1.0

python - 在追加模式下加载使用 numpy.save 保存的数组

php - 数组中的值是字符串而不是整数

java - 使用 Spring Kafka 反序列化来自同一 Kafka 主题的不同 JSON 有效负载

python - 求解二次和三次多项式的三次函数?

javascript - 在 JavaScript 中将子数组的值传递给 CharCodeAt

python - 在 Matplotlib 中使用透明度离散化颜色图

java - REST - 将带有额外未定义参数的 JSON 请求映射到 Java 对象时服务器抛出异常