append - Python JSON تفريغ / إلحاق.txt مع كل متغير في السطر الجديد




newline dump (2)

يقوم الكود الخاص بي بإنشاء قاموس يتم تخزينه بعد ذلك في متغير. أريد أن أكتب كل قاموس إلى ملف JSON ، لكنني أريد أن يكون كل قاموس في سطر جديد.

قاموسي:

hostDict = {"key1": "val1", "key2": "val2", "key3": {"sub_key1": "sub_val2", "sub_key2": "sub_val2", "sub_key3": "sub_val3"}, "key4": "val4"}

جزء من الكود:

g = open('data.txt', 'a')
with g as outfile:
  json.dump(hostDict, outfile)

يؤدي هذا إلى إلحاق كل قاموس بـ "data.txt" ولكنه يفعل ذلك مضمّنًا. أريد أن يكون كل إدخال قاموس في سطر جديد. سيكون موضع تقدير أي نصيحة.


Answers

سؤالك غير واضح قليلاً. إذا كنت hostDict في حلقة:

with open('data.txt', 'a') as outfile:
    for hostDict in ....:
        json.dump(hostDict, outfile)
        outfile.write('\n')

إذا كنت تعني أنك تريد أن يكون كل متغير داخل hostDict في سطر جديد:

with open('data.txt', 'a') as outfile:
    json.dump(hostDict, outfile, indent=2)

عند تعيين وسيطة الكلمة الأساسية indent فإنها تضيف تلقائيًا أسطر جديدة.


يمكنك أيضًا وضع العبارة SQL في ملف مستقل action.sql في ملف py باستخدام

with open('action.sql') as f:
   query = f.read()

وبالتالي سيتم فصل البيانات SQL من رمز الثعبان. إذا كانت هناك معلمات في عبارة SQL التي يجب ملؤها من python ، فيمكنك استخدام تنسيق السلسلة (مثل٪ s أو {field})







python json append newline dump