Ваша переменная с именем data
должна оказаться словарем, а не списком. Поэтому, когда вы пытаетесь выполнить «for row in data:
», вы говорите: «Делайте следующее для каждого ключа в словаре», , а не для элементов в списке! Словари не упорядочены, но независимо от того, какой ключ сначала выбирается как row
, команда не выполняется, потому что она не может найти внутри нее ничего, что называется «symmetrixID
». Если, например, HostID
был первым ключом, выбранным в цикле, то row['symmetrixID']
означает data['HostID']['symmetrixID']
.
Если вы посмотрите более внимательно, в словаре есть только один список, который нужно перебрать, и это data["perf_data"]
. Так что попробуйте петлю там.
На данный момент ваши данные в строке: , Если вы сначала не измените все эти значения с плавающей точкой на строки, join
не будет работать. В любом случае, вы можете заменить команду print
нужной вам командой записи.
Необходимо открыть его с помощью "Двоичный Доступ".
См. http://www.vbforums.com/showthread.php?t=430424
Sub Temp()
Dim intFileNum%, bytTemp As Byte, intCellRow%
intFileNum = FreeFile
intCellRow = 0
Open "C:\temp.bin" For Binary Access Read As intFileNum
Do While Not EOF(intFileNum)
intCellRow = intCellRow + 1
Get intFileNum, , bytTemp
Cells(intCellRow, 1) = bytTemp
Loop
Close intFileNum
End Sub
Другой способ - использовать ADODB.Stream:[12107 impression( Извините, я не совсем уверен, в какой библиотеке он находится, поэтому в этом примере кода используется CreateObject и буквальное значение 1 вместо именованная константа adTypeBinary!)