我如何导入相互导入的函数和字典。这两个文件已经在同一个目录中,因此没有nid可以导入sys。另外,我这是递归的,这就是它无法导入的原因。如何从彼此的文件中导入字典而不使其递归并导致错误?
我确实在这里访问了这个网站,但它没有回答我的问题,也没有提供任何示例代码来指导我,因此我用测试代码创建了这个问题来解释我的问题。
假设我有这两个文件:boxA 和 boxR,每个文件都有一个字典 keyA 和 keyR 以及名为 generatekeyA 和 generatekeyR 的函数
在方框 A 中:
import json
from tinydb import TinyDB, Query
from boxR import keyR
def generatekeyA():
keyA = {}
serialnoA = 'Serial_noA'
secretidA = 'Secret_idA'
count = 0
while (count <5):
serial = generate key
id = generate id
keyA[serialnoA].append(serial)
keyA[secretidA].append(id)
with open("/home/pi/Desktop/json/output.json", 'w+'):
db = TinyDB('/home/pi/Desktop/json/output1.json')
table = db.table('A KEYS')
db.insert_multiple([{'Serial number A' : keyA[serialnoA]}])
db.insert_multiple([{'Secret id A' : keyA[secretidA]}])
db.insert_multiple([{'Secret id R' : keyR[secretidR]}])
generatekeyA()
在boxR中:
import json
from tinydb import TinyDB, Query
from boxA import keyA
def generatekeyR():
keyR = {}
serialnoR = 'Serial_noR'
secretidR = 'Secret_idR'
count = 0
while (count <5):
serialR = generate key
idR = generate id
keyR[serialnoR].append(serialR)
keyR[secretidR].append(idR)
with open("/home/pi/Desktop/json/output2.json", 'w+'):
db = TinyDB('/home/pi/Desktop/json/output2.json')
table = db.table('R KEYS')
db.insert_multiple([{'Serial number R' : keyR[serialnoR]}])
db.insert_multiple([{'Secret id R' : keyR[secretidR]}])
db.insert_multiple([{'Secret id A' : keyA[secretidA]}])
generatekeyA()
让我解释一下上面的代码。我有 2 个为我生成密钥的文件,之后我必须将输出导出到 json 文件中。output.json 文件将 keyA 自己的序列号和密钥 ID 以及 keyR 的 secretid 和反之打印输出到 output2.json 文件中。但问题是,尽管我研究了递归输出,但我仍然不明白如何修复它,因为它没有提供任何示例代码作为指导。解决此问题的最佳方法是什么,以便我不必对文件进行太多更改?
错误告诉我它可能是一个递归错误:
Traceback (most recent call last):
File "/home/pi/Desktop/boxA.py", line 7, in <module>
from boxR import keyR
File "/home/pi/Desktop/boxR.py", line 11, in <module>
from boxA import keyA
File "/home/pi/Desktop/boxA.py", line 7, in <module>
from boxR import keyR
ImportError: cannot import name 'keyA'